zoukankan      html  css  js  c++  java
  • 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键运行程序,就可以看到效果。

  • 相关阅读:
    技术部新年开工第一场会议
    mockjs学习总结(方便前端模拟数据,加快开发效率)
    vue开发后台管理系统小结
    网站代码、图片优化汇总
    前端seo小结,网页代码优化
    Java 并发编程之锁的实现
    python之格式化输出
    python七类之列表元组
    python七类之集合
    函数风云序列之函数初现
  • 原文地址:https://www.cnblogs.com/blogpro/p/11446597.html
Copyright © 2011-2022 走看看