用Delphi设计多边形窗体

2008-02-23 07:15:39来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  本文将介绍如何利用Windows提供的制作界面函数制作一个多边形窗体。

  制作多边形窗体的关键在于设定多边形的区域,并根据这个指定的区域改变窗体的形状。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键运行程序,结果如图1-3所示。


图 程序运行结果

  制作多边形窗体的方法并不止本实例所介绍的一种,后面还会涉及到如何制作更为复杂的窗体,希望读者多加体会,制作出更加有个性的窗体。

上一篇: Delphi下利用DDE实现同Word的交互
下一篇: QQ窗体自动隐藏效果探究

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Delphi编程根据IP地址得到主机名

下一篇:Delphi下利用DDE实现同Word的交互