Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16496583
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:50:15

下载本文示例代码
  本文将介绍如何利用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) |
给主人留下些什么吧!~~