在图片中,我想绘制一个圆形的选择区域。我曾经画过矩形,但从未处理过。有可能做到吗?我正在用Delphi编码
答案 0 :(得分:3)
DrawFocusRect()
仅支持矩形。对于其他形状,您将需要自己手动绘制它们,例如使用Ellipse()
和适当的Brush
和Pen
。
要使用DrawFocusRect()
具有相似的外观和行为,请使用alternating和XOR笔。例如:
var
Brush: TLogBrush;
begin
Brush.lbStyle := BS_SOLID;
Brush.lbColor := clBlack;
Canvas.Pen.Handle := ExtCreatePen(PS_COSMETIC or PS_ALTERNATE, 1, Brush, 0, nil);
Canvas.Pen.Style := psAlternate;
Canvas.Pen.Mode := pmNotXor;
Canvas.Brush.Style := bsClear;
Canvas.Ellipse(...