我正在使用C ++ Builder并尝试使用DrawFocusRect函数:
DrawRect.left = X;
DrawRect.top = Y;
DrawRect.right = X;
DrawRect.bottom = Y;
Canvas->DrawFocusRect(DrawRect);
问题是这个矩形几乎看不见。我试过这个:
Canvas->Pen->Width = 2;
但没有成功。是否可以改变焦点矩形的宽度,还是可以使用其他方法?
答案 0 :(得分:1)
此方法映射到Windows API函数DrawFocusRect
。文件说:
Windows XP :焦距矩形现在可以超过1个像素,因此对于高分辨率,高密度显示和可访问性需求更加明显。这由
SystemParametersInfo
中的SPI_SETFOCUSBORDERWIDTH
和SPI_SETFOCUSBORDERHEIGHT
处理。
所以你确实可以控制宽度。但是,您所做的修改适用于当前桌面上的所有程序。我很确定这不是你想要的。所以我的建议是你不要使用DrawFocusRect
而是手动绘制这个矩形。这很容易做到。它只是交替的黑白像素,可以用BitBlt
有效地绘制。而且很可能是其他更简单的方式。