我编写了一个MFC应用程序,需要一个按钮,它不会将输入焦点从另一个窗口移开。
当使用鼠标单击按钮时,删除WS_TABSTOP样式确实无济于事。当我阻止WM_LBUTTONDOWN时,我没有得到视觉按下的指示,所以这也不起作用。
答案 0 :(得分:3)
如果您想要保持焦点的特定窗口,您可以使用按钮的CWnd::SetFocus()
处理程序中的OnLButtonDown
命令强制将焦点移回窗口。
如果您希望将焦点恢复到多个窗口之一,您可以尝试子类化CButton并捕获当键盘焦点更改为按钮时发送的CWnd::OnSetFocus()
消息。
OnSetFocus()
事件包含刚丢失焦点的控件的CWnd,因此您可以手动将其重新放回,作为OnSetFocus()
事件本身的一部分,或稍后作为OnLButtonDown()
事件的一部分再次{1}}处理程序。