下载本文示例代码
本文将介绍如何利用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;interfaceusesWindows, 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所示。
图 程序运行结果 制作多边形窗体的方法并不止本实例所介绍的一种,后面还会涉及到如何制作更为复杂的窗体,希望读者多加体会,制作出更加有个性的窗体。
本文将介绍如何利用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;interfaceusesWindows, 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设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体用Delphi设计多边形窗体
阅读(226) | 评论(0) | 转发(0) |