1
我编写了一个MFC应用程序,并且需要一个不会将输入焦点从另一个窗口调出的按钮。如何防止CWnd获得焦点?
不幸的是,当使用鼠标点击按钮时,删除WS_TABSTOP样式并没有帮助。当我阻止WM_LBUTTONDOWN我没有得到一个视觉按下指示,所以这也不起作用。
我编写了一个MFC应用程序,并且需要一个不会将输入焦点从另一个窗口调出的按钮。如何防止CWnd获得焦点?
不幸的是,当使用鼠标点击按钮时,删除WS_TABSTOP样式并没有帮助。当我阻止WM_LBUTTONDOWN我没有得到一个视觉按下指示,所以这也不起作用。
如果您想要保持焦点的特定窗口,则可以使用按钮的OnLButtonDown
处理程序中的CWnd::SetFocus()
命令将焦点强制回到窗口。
如果您想将焦点恢复到多个窗口之一,您可以尝试继承CButton并捕获在键盘焦点更改为按钮时发送的CWnd::OnSetFocus()
消息。
的OnSetFocus()
事件包括刚刚失去焦点的控件的CWnd的,所以你可以手动把它放回去,无论是作为OnSetFocus()
事件本身的一部分,还是后来作为OnLButtonDown()
处理程序的一部分再次。