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键运行程序,就可以看到效果。

  • 相关阅读:
    Linux--shell的awk--10
    Spring Boot 整合 tk.mybatis
    pring Boot 整合 Druid
    Thymeleaf 模板布局
    Thymeleaf 内置对象
    Thymeleaf 表达式语法
    Thymeleaf 参考手册
    Thymeleaf常用语法
    Thymeleaf简介及第一个thymeleaf模板
    Docker 安装nginx
  • 原文地址:https://www.cnblogs.com/blogpro/p/11446597.html
Copyright © 2011-2022 走看看