当我单击一个按钮时,焦点设置到此按钮。
如何使用 C++ 中的 WIN API 移除此按钮的焦点?
我认为也许以某种方式使用SendMessage
WIN API 方法可以从按钮中移除焦点。
我只有按钮的句柄,我也不能再访问父窗口了。
我知道几乎每次都可以使用::SetFocus
,但是这次我不能使用它,因为即使找到句柄也无法访问窗口窗体。所以请提出其他解决方案。
您可以将焦点放在另一个窗口上,但如果您真的不需要焦点。最好使用::SetFocus(NULL)
. 这样可以防止发送一些 windows 消息,因此性能可能会略微提高。
子类化按钮和接口WM_SETFOCUS
消息。这会告诉你HWND
正在失去焦点。SetFocus()
然后,HWND
如果需要,您可以返回。
您只需使用所需窗口的句柄/指针调用::SetFocus
(或者如果您正在使用 MFC)将焦点放在另一个窗口上。CWnd::SetFocus