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