win32 SetFocus问题
我在用win32 api写程序。
程序是单线程的,即只有WinMain函数这一个主线程。
我遇到的问题抽象描述如下:
程序的主窗口(即frame窗口)中,有两个子窗口A和B。
A中有一个子窗口C,他是一个标准的edit控件。
B中有一个子窗口D,他是我自己实现的一个窗口,功能类似于edit。
我在D窗口的WM_LBUTTONDOWN消息处理中,调用SetFocus,使得D能够响应键盘输入。
本来这一切都是正常的。
但问题是,如果鼠标点击一下窗口C的内部,使得C获得Focus。
然后,再点击窗口D的内部,无论如何点击,D都无法获得Focus了。
SetFocus(hwnd)之后, GetLastError返回值为5。
我已经检查了我调用SetFocus(hwnd)时传入的窗口句柄,句柄是完全正确的。
程序是单线程的,即只有WinMain函数这一个主线程。
我遇到的问题抽象描述如下:
程序的主窗口(即frame窗口)中,有两个子窗口A和B。
A中有一个子窗口C,他是一个标准的edit控件。
B中有一个子窗口D,他是我自己实现的一个窗口,功能类似于edit。
我在D窗口的WM_LBUTTONDOWN消息处理中,调用SetFocus,使得D能够响应键盘输入。
本来这一切都是正常的。
但问题是,如果鼠标点击一下窗口C的内部,使得C获得Focus。
然后,再点击窗口D的内部,无论如何点击,D都无法获得Focus了。
SetFocus(hwnd)之后, GetLastError返回值为5。
我已经检查了我调用SetFocus(hwnd)时传入的窗口句柄,句柄是完全正确的。
...全文
相关推荐
无法输入编辑控件
焦点问题:编辑控件可能没有获得焦点,因此无法接收键盘输入。可以通过调用SetFocus函数将焦点设置到编辑控件,或者检查父窗口的WM_SETFOCUS消息处理是否正确。4.
常用API for VB
**SetFocus**:将焦点转移到指定的窗口,使该窗口成为活动窗口,接受用户输入。14.
Win10窗口焦点丢失问题[代码]
WM_ACTIVATE与WM_SETFOCUS消息分发链路。
Win32 API讲座
【Win32 API讲座】Win32 API 是微软Windows操作系统提供的一个编程接口,它允许开发者编写能在Windows环境下运行的应用程序。
win32消息大全.docx
Win32 消息大全Win32 消息大全是 Windows 操作系统中的一种消息机制,用于在应用程序和操作系统之间传递信息。


界面
