首页 > 解决方案 > DrawFocusRect 函数

问题描述

在一张图片中,我想画一个圆形的选择区域。我曾经画过矩形,但从来没有处理过其他的。有可能做到吗?我在德尔福编码

标签: imagedelphiselection

解决方案


DrawFocusRect()仅支持矩形。对于其他形状,您必须根据需要自己手动绘制它们,例如使用Ellipse()适当的Brushand Pen

要与 具有相似的外观和行为,请DrawFocusRect()使用交替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(...

推荐阅读