【发布时间】:2010-06-17 18:33:51
【问题描述】:
我编写了一个 MFC 应用程序,并且需要一个不会将输入焦点从另一个窗口移开的按钮。
不幸的是,当用户用鼠标单击按钮时,删除 WS_TABSTOP 样式并没有帮助。当我阻止 WM_LBUTTONDOWN 时,我没有得到视觉按下指示,所以这也不起作用。
【问题讨论】:
标签: windows user-interface mfc focus
我编写了一个 MFC 应用程序,并且需要一个不会将输入焦点从另一个窗口移开的按钮。
不幸的是,当用户用鼠标单击按钮时,删除 WS_TABSTOP 样式并没有帮助。当我阻止 WM_LBUTTONDOWN 时,我没有得到视觉按下指示,所以这也不起作用。
【问题讨论】:
标签: windows user-interface mfc focus
如果您想保留某个特定窗口的焦点,您可以使用按钮的OnLButtonDown 处理程序中的CWnd::SetFocus() 命令将焦点强制返回到您的窗口。
如果您希望将焦点恢复到多个窗口之一,您可以尝试将 CButton 子类化并捕获当键盘焦点更改为按钮时发送的 CWnd::OnSetFocus() 消息。
OnSetFocus() 事件包含刚刚失去焦点的控件的 CWnd,因此您可以手动将其放回原处,或者作为 OnSetFocus() 事件本身的一部分,或者稍后再次作为 OnLButtonDown() 处理程序的一部分.
【讨论】: