zoukankan      html  css  js  c++  java
  • 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.
    
  • 相关阅读:
    理财课堂笔记第9天
    李筱懿的《先谋生,再谋爱》读后感
    bat想要写一个卸载软件的脚本,最后宣布失败[未完待续...]
    理财课堂日记第7天
    理财课堂日记第6天
    理财课堂日记第5天
    bat脚本登陆ftp服务器
    理财课堂笔记第4天
    理财课堂日记第3天
    理财课堂日记第2天
  • 原文地址:https://www.cnblogs.com/del/p/1205183.html
Copyright © 2011-2022 走看看