从单击的按钮中移除焦点

时间:2013-08-30 19:02:08

标签: c++ winapi

单击按钮时,此按钮上设置了焦点。

如何使用c ++中的WIN API从此按钮中删除焦点?

我想也许以某种方式使用SendMessage WIN API可以从按钮中移除焦点。

我只有按钮的句柄。

此外,我无法访问父窗体窗口。

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

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

相关问题