WinAPI: CreatePolygonRgn - 建立多边形区域

本例效果图:

WinAPI: CreatePolygonRgn - 建立多边形区域

unit Unit1;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls;



type

  TForm1 = class(TForm)

    procedure FormPaint(Sender: TObject);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



procedure TForm1.FormPaint(Sender: TObject);

var

  ps: array[0..9] of TPoint;

  Rgn: HRGN;

begin

  ps[0] := Point(120, 5);

  ps[1] := Point(140, 70);

  ps[2] := Point(210, 70);

  ps[3] := Point(150, 100);

  ps[4] := Point(180, 175);

  ps[5] := Point(120, 120);

  ps[6] := Point(60, 175);

  ps[7] := Point(90, 100);

  ps[8] := Point(30, 70);

  ps[9] := Point(100, 70);



  {建立多边形区域}

  Rgn := CreatePolygonRgn(ps, Length(ps), WINDING);



  {填充区域}

  Canvas.Brush.Color := clSilver;

  Canvas.Brush.Style := bsCross;

  FillRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle);



  {绘制区域边界}

  Canvas.Brush.Color := clRed;

  Canvas.Brush.Style := bsSolid;

  FrameRgn(Canvas.Handle, Rgn, Canvas.Brush.Handle, 2, 2);

  DeleteObject(Rgn);

end;



end.


 
   

你可能感兴趣的:(create)