win32 SetFocus问题

无忧老猪 无忧老猪 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在用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)时传入的窗口句柄,句柄是完全正确的。
...全文
评论 7
收藏 已收藏
分享
返回顶部
无忧老猪
界面 15,976 成员 115,866 内容