WinAPI: IntersectRect、SubtractRect、UnionRect - 用两个矩形合成一个新的矩形

本例效果图:

WinAPI: IntersectRect、SubtractRect、UnionRect - 用两个矩形合成一个新的矩形

unit Unit1;



interface



uses

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

  Dialogs, StdCtrls;



type

  TForm1 = class(TForm)

    Button1: TButton;

    Button2: TButton;

    Button3: TButton;

    Button4: TButton;

    procedure FormCreate(Sender: TObject);

    procedure Button1Click(Sender: TObject);

    procedure Button2Click(Sender: TObject);

    procedure Button3Click(Sender: TObject);

    procedure Button4Click(Sender: TObject);

  end;



var

  Form1: TForm1;



implementation



{$R *.dfm}



{定义两个矩形常量}

const

  R1: TRect = (Left:20; Top:30; Right:160; Bottom:100);

  R2: TRect = (Left:100; Top:10; Right:180; Bottom:120);



{初始化按钮显示}

procedure TForm1.FormCreate(Sender: TObject);

begin

  Button1.Caption := '两个原始矩形';

  Button2.Caption := '相交';

  Button3.Caption := '减去';

  Button4.Caption := '联合';

end;



{画出两个原始矩形}

procedure TForm1.Button1Click(Sender: TObject);

begin

  Refresh;

  Canvas.Brush.Color := clOlive;

  Canvas.Rectangle(R2);

  Canvas.Brush.Color := clBlue;

  Canvas.Rectangle(R1);

end;



{相交: IntersectRect}

procedure TForm1.Button2Click(Sender: TObject);

var

  R: TRect;

begin

  Refresh;

  IntersectRect(R, R1, R2);

  Canvas.Brush.Color := clRed;

  Canvas.Rectangle(R);

end;



{减去: SubtractRect}

procedure TForm1.Button3Click(Sender: TObject);

var

  R: TRect;

begin

  Refresh;

  SubtractRect(R, R1, R2);

  Canvas.Brush.Color := clRed;

  Canvas.Rectangle(R);

end;



{联合: UnionRect}

procedure TForm1.Button4Click(Sender: TObject);

var

  R: TRect;

begin

  Refresh;

  UnionRect(R, R1, R2);

  Canvas.Brush.Color := clRed;

  Canvas.Rectangle(R);

end;



end.


 
   

你可能感兴趣的:(intersect)