2

当我单击一个按钮时,焦点设置到此按钮。

如何使用 C++ 中的 WIN API 移除此按钮的焦点?

我认为也许以某种方式使用SendMessageWIN API 方法可以从按钮中移除焦点。

我只有按钮的句柄,我也不能再访问父窗口了。

我知道几乎每次都可以使用::SetFocus,但是这次我不能使用它,因为即使找到句柄也无法访问窗口窗体。所以请提出其他解决方案。

4

3 回答 3

3

您可以将焦点放在另一个窗口上,但如果您真的不需要焦点。最好使用::SetFocus(NULL). 这样可以防止发送一些 windows 消息,因此性能可能会略微提高。

于 2014-01-24T09:18:07.573 回答
1

子类化按钮和接口WM_SETFOCUS消息。这会告诉你HWND正在失去焦点。SetFocus()然后,HWND如果需要,您可以返回。

于 2013-08-30T19:16:43.187 回答
1

您只需使用所需窗口的句柄/指针调用::SetFocus(或者如果您正在使用 MFC)将焦点放在另一个窗口上。CWnd::SetFocus

于 2013-08-30T19:09:48.267 回答