zoukankan      html  css  js  c++  java
  • 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.
    
  • 相关阅读:
    MySQL_基础_TCL事务控制语言
    MySQL_基础_DDL数据定义语言
    MySQL_基础_DQL数据查询语言
    MySQL_基础_DML数据操纵语言
    MySQL_基础_存储过程和函数
    MySQL_基础_变量
    linux 常用命令
    灵活QinQ示例
    RRPP 演示实例
    ERPS实例演示
  • 原文地址:https://www.cnblogs.com/del/p/1207768.html
Copyright © 2011-2022 走看看