【发布时间】:2010-01-27 00:02:01
【问题描述】:
当按钮在对话框中具有键盘焦点时,如何防止出现在按钮上的小虚线方块。 (为技术术语道歉)。有一次,我通过子类化一个按钮 WindowProc 并颠覆一些 Windows 消息来破解一个解决方案,但想知道正确的方法。
对话框中的另一个控件实际上存在问题,也涉及键盘。这个其他控件实际上也是一个按钮,但用作组合框或面板,而不是用作功能按钮。但是当我在对话框中点击 tab 键时,这个组框“按钮”会出现在前台,遮住了它上面的静态控件,所以我想防止这种情况发生。
对于上述两种情况,我尝试关闭 WS_TABSTOP - 没有帮助。)
【问题讨论】:
-
您可以尝试在收到 WM_SETFOCUS 消息后将焦点设置为其他内容。
-
你知道我相信这实际上适用于组框按钮。然而,它不适用于普通按钮 - 它阻止了虚线正方形,但导致了其他问题(有问题的按钮实际上是一个类似按钮的复选框,具有普通按钮的外观,但在“选中”时保持按下状态。它也是键入 BS_ICON,我会根据状态在其上绘制不同的图标。因此禁用 WM_SETFOCUS 时无法正常工作。
标签: c++ winapi visual-c++ mfc