【发布时间】:2017-09-29 13:10:00
【问题描述】:
我在 MFC 应用程序中遇到以下问题:
控件中的焦点矩形并不总是显示,即使控件具有焦点。
重现步骤:
好像有两种“模式”,一种是显示焦点矩形,另一种是不显示。
其他事实:
- 控件确实具有焦点,因为使用向上/向下箭头键可以更改所选项目
- 它在 Windows 10 上运行
- 当我们处于不显示焦点矩形的“模式”时,程序的行为仍然正确。
有人遇到过这样的问题吗?我想知道这是否是一些“聪明”的微软功能。
【问题讨论】:
-
它应该是一个功能。它与隐藏焦点提示有关,直到用户使用键盘导航。我从来没有真正理解它是如何工作的,但是您可以通过在初始化时使用 wparam = 0x10002 将 WM_UPDATEUISTATE 发送到您的窗口来禁用它。
-
@HansPassant 类似于在您按下 Alt 键之前不会显示的加速键下划线?
-
@HansPassant 它是如何工作的?很简单,如果您使用键盘进行导航,您就会得到提示。如果您只使用鼠标,则不会,因此 UI 看起来会更干净。按 Win+R 并输入“calc”启动 Calc,您将看到一个焦点矩形。通过单击快捷方式启动它,您不会。