• delphi如何设计不规则窗体


    制作多边形窗体的关键在于设定多边形的区域,并根据这个指定的区域改变窗体的形状。Windows的CreatePolygonRgn和SetWindowRgn函数可以解决这两个难点。
    利用以下代码即可将窗体设置为一个五边形:
    procedure TForm1.FormCreate(Sender: TObject);
    var
    pt: array [0..4] of TPoint;
    m_rgn: HRGN;
    begin
    pt[0].x:=self.Width div 2;
    pt[0].y:=0;
    pt[1].x:=0;
    pt[1].y:=self.Height div 2;
    pt[2].x:=self.Width div 2;
    pt[2].y:=self.Height;
    pt[3].x:=self.Width;
    pt[3].y:=self.Height div 2;
    pt[4].x:=self.Width;
    pt[4].y:=0;
    m_rgn:=CreatePolygonRgn(pt,5,WINDING);
    SetWindowRgn(self.Handle,m_rgn,TRUE);
    end;
    该程序首先定义了一个TPoint类型的数组pt,在其中存储了一个五边形的数据。然后使用CreatePolygonRgn函
    数将这个五边形转换成为一个区域,最后使用SetWindowRgn函数,根据五边形指定的区域改变窗体的形状。
    程序代码如下:
    unit Unit1;
    interface
    uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs;
    type
    TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;
    var
    Form1: TForm1;
    implementation
    {$R *.dfm}
    procedure TForm1.FormCreate(Sender: TObject);
    var
    pt: array [0..4] of TPoint;
    m_rgn: HRGN;
    begin
    pt[0].x:=self.Width div 2;
    pt[0].y:=0;
    pt[1].x:=0;
    pt[1].y:=self.Height div 2;
    pt[2].x:=self.Width div 2;
    pt[2].y:=self.Height;
    pt[3].x:=self.Width;
    pt[3].y:=self.Height div 2;
    pt[4].x:=self.Width;
    pt[4].y:=0;
    m_rgn:=CreatePolygonRgn(pt,5,WINDING);
    SetWindowRgn(self.Handle,m_rgn,TRUE);
    end;
    end.
    保存文件,然后按F9键运行程序,就可以看到效果。

  • 相关阅读:
    Broadcasting
    TensorFlow2-维度变换
    TensorFlow2教程(目录)
    SQL Server 加密层级
    Windows 打开防火墙上的指定端口
    SQL Server 查看对象之间的引用关系
    SQL Server 查看实例配置情况的 2 方法
    Linux 快捷键
    MYSQL 二进制日志
    SQL Server 存储过程自启动
  • 原文地址:https://www.cnblogs.com/blogpro/p/11446597.html
Copyright © 2020-2023  润新知