DrawFocusRect函数

时间:2018-12-06 01:03:30

标签: image delphi selection

在图片中,我想绘制一个圆形的选择区域。我曾经画过矩形,但从未处理过。有可能做到吗?我正在用Delphi编码

1 个答案:

答案 0 :(得分:3)

DrawFocusRect()仅支持矩形。对于其他形状,您将需要自己手动绘制它们,例如使用Ellipse()和适当的BrushPen

要使用DrawFocusRect()具有相似的外观和行为,请使用alternatingXOR笔。例如:

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(...