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

  • 相关阅读:
    SWFUpload说明文档
    Ubuntu中root用户和user用户的相互切换
    不用IF比较两数大小
    Linux服务器下验证码图片不显示问题
    常用CSS语法
    常用CSS语法
    漫谈DataList的用法
    Session丢失浅析
    浅谈C#托管程序中的资源释放问题
    C#2.0 泛型详解
  • 原文地址:https://www.cnblogs.com/blogpro/p/11446597.html
Copyright © 2011-2022 走看看