我注意到我们的一个旧应用程序在 Windows 10 中运行时,焦点矩形发生了变化。事实证明,我们在其他旧式 Microsoft 应用程序中看到了相同的效果 - 例如,在 HTML Help Workshop 中。焦点矩形必须是由交替的黑白点组成的虚线矩形,但我们看到一个 2 像素矩形与看起来像红橙色矩形的选择混合:
该问题仅出现在 2 台装有 Windows 10 版本 1909 的计算机上。其中一台是 Pro 版,另一台是 Home 版。
焦点矩形是在我们的应用程序中使用 WinAPI DrawFocusRect函数绘制的。该DrawFocusRect
函数的文档说明如下:
Windows XP:焦点矩形现在可以厚于 1 个像素,因此对于高分辨率、高密度显示器和可访问性需求而言,它更加明显。
但这无助于理解为什么问题只发生在这 2 台计算机上。它们配备了普通的 96dpi 显示器,据我所知,它们没有打开辅助功能选项。
它可能是什么以及如何修复焦点矩形的绘制以查看传统的 1 像素黑白虚线矩形?
如果有帮助,这里是用于在我们的 VB6 应用程序中绘制焦点矩形的代码示例:
Dim hBrBlack As Long
hBrBlack = CreateSolidBrush(vbBlack)
FrameRect hMemDC, rcFocusRect, hBrBlack
DeleteObject hBrBlack
SetBkColor hMemDC, lColor1
SetTextColor hMemDC, lColor2
DrawFocusRect hMemDC, rcFocusRect