按钮键盘焦点问题

时间:2010-01-27 00:02:01

标签: c++ winapi visual-c++ mfc

当对话框中有键盘焦点时,如何防止按钮上出现的小点状方块。 (对技术术语表示道歉)。有一次,我通过继承WindowProc按钮并破坏一些Windows消息来破解一个解决方案,但想知道正确的方法。

对话框中的另一个控件实际上也存在问题,还涉及键盘。这个其他控件实际上也是一个按钮,但是用作组框或面板,而不是用作功能按钮。但是当我点击对话框中的tab键时,这个组合框“按钮”到达前面,遮住了它上面的静态控件,所以我想阻止它。

对于上述两种情况,我尝试关闭WS_TABSTOP - 没有帮助。)

2 个答案:

答案 0 :(得分:1)

上面提到的两个问题都是通过继承WndProcs并返回0以响应消息0x128并丢弃它来解决的。即使间谍++也无法识别此消息0x128,我在任何标头中都没有。但是,在对话框中第一次点击选项卡时,它会发送到对话框中的每个控件。

(我确实尝试了如上所述的BN_SETFOCUS以及WM_SETFOCUS,但它没有帮助。)

所以,如果有人知道在哪里找到什么窗口消息0x128 ...

答案 1 :(得分:0)

正确的方法是编写自己的按钮控件而不是使用默认的Windows控件。

或者,您可以防止获得键盘焦点。