禁用 WIN32API 集中控件突出显示

ael*_*goa 1 winapi

如何删除选择按钮或复选框等控件时绘制的轮廓?

HWND chk=CreateWindow("button",s,
  BS_FLAT|BS_AUTOCHECKBOX|BS_LEFTTEXT|WS_CHILD|WS_VISIBLE,
  x,y,w,h,p,id,hInst,NULL);
Run Code Online (Sandbox Code Playgroud)

http://www.thevbzone.com/L3_3.gif

Adr*_*thy 5

焦点矩形(如助记符的下划线)根据 UI 状态显示。默认情况下,这些内容是隐藏的,除非用户通过键盘启动对话框或菜单。这个想法是,如果他们使用键盘,这些视觉提示很有用,但如果他们使用鼠标(或触摸),它们就会变得混乱。

UI 状态可以通过SystemParametersInfo使用SPI_GET/访问SETKEYBOARDCUES,但我不建议更改它,因为它会影响用户对所有应用程序的体验,而不仅仅是您的应用程序。

常规 UI 控件根据其状态和当前 UI 状态决定如何绘制自身。如果您想更改应用程序的外观,则必须使用控件为“所有者绘图”提供的任何功能,这可能需要相当多的工作,而且并非所有控件类型都提供适当的覆盖。我不知道有任何每个控制位可以抑制焦点矩形。

如果您使用的是现代应用程序,焦点指示器通常比旧式按钮上的虚线矩形看起来更清晰。如果您只是想要现代外观并且不想让键盘用户更难使用您的应用程序,请确保已启用视觉样式。