关于区域填充的问题 ( 积分: 32 )

  • 主题发起人 主题发起人 小飞龙
  • 开始时间 开始时间

小飞龙

Unregistered / Unconfirmed
GUEST, unregistred user!
我要在一个不规则的区域里面,填充斜线,而不修改背景色,要怎么处理

比如一个这样的区域
Canvas.MoveTo(10,10);
Canvas.LineTo(30,10);
Canvas.LineTo(30,30);
Canvas.LineTo(100,100);
Canvas.LineTo(200,100);
Canvas.LineTo(200,300);
Canvas.LineTo(10,300);
Canvas.LineTo(10,10);

这个这是一个例子
 
procedure TForm1.Button1Click(Sender: TObject);
var
rgn: THandle;
begin
BeginPath(Canvas.Handle);
Canvas.MoveTo(10,10);
Canvas.LineTo(30,10);
Canvas.LineTo(30,30);
Canvas.LineTo(100,100);
Canvas.LineTo(200,100);
Canvas.LineTo(200,300);
Canvas.LineTo(10,300);
Canvas.LineTo(10,10);

EndPath(canvas.Handle);
rgn := PathToRegion(Canvas.Handle);
Canvas.Brush.Style := bsFDiagonal;
canvas.Brush.Color := clRed;
FillRgn(Canvas.Handle,rgn,Canvas.Brush.Handle);

// SetWindowRgn(Handle,rgn,True); //切图

end;
 
接受答案了.
 
后退
顶部