如何改变DrawFocusRect笔的宽度?

时间:2014-04-10 07:33:48

标签: canvas focus c++builder rect

我正在使用C ++ Builder并尝试使用DrawFocusRect函数:

DrawRect.left = X;
DrawRect.top = Y;
DrawRect.right = X;
DrawRect.bottom = Y;
Canvas->DrawFocusRect(DrawRect);

问题是这个矩形几乎看不见。我试过这个:

Canvas->Pen->Width = 2;

但没有成功。是否可以改变焦点矩形的宽度,还是可以使用其他方法?

1 个答案:

答案 0 :(得分:1)

此方法映射到Windows API函数DrawFocusRect。文件说:

  

Windows XP :焦距矩形现在可以超过1个像素,因此对于高分辨率,高密度显示和可访问性需求更加明显。这由SystemParametersInfo中的SPI_SETFOCUSBORDERWIDTHSPI_SETFOCUSBORDERHEIGHT处理。

所以你确实可以控制宽度。但是,您所做的修改适用于当前桌面上的所有程序。我很确定这不是你想要的。所以我的建议是你不要使用DrawFocusRect而是手动绘制这个矩形。这很容易做到。它只是交替的黑白像素,可以用BitBlt有效地绘制。而且很可能是其他更简单的方式。