用Delphi设计多边形窗体
本文将介绍如何利用Windows提供的接口函数制作一个多边形窗体。
制作多边形窗体的关键是设置多边形面积,并根据指定的面积改变窗体的形状。Windows的CreatePolygonRgn和SetWindowRgn函数可以解决这两个难点。
使用以下代码将窗体设置为五边形:
程序TForm1。FormCreate(发件人:to object);
var
pt: array [0..4]的TPoint
m _ rgn:HRGN;
begin
pt[0]。x:=自我。宽度div 2;
pt[0]。y:= 0;
pt[1]。x:= 0;
pt[1]。y:=自我。高度div 2;
pt[2]。x:=自我。宽度div 2;
pt[2]。y:=自我。身高;
pt[3]。x:=自我。宽度;
pt[3]。y:=自我。高度div 2;
pt[4]。x:=自我。宽度;
pt[4]。y:= 0;
m _ rgn:= CreatePolygonRgn(pt,5,WINDING);
SetWindowRgn(self。Handle,m_rgn,TRUE);
end;
首先,程序定义了一个TPoint类型的数组pt,其中存储了一个五边形数据。然后使用CreatePolygonRgn函数将五边形转换为区域,最后使用SetWindowRgn函数根据五边形指定的区域改变窗体的形状。
程序代码如下:
unit Unit1
接口
使用
窗口、消息、系统工具、变体、类、图形、控件、窗体、
对话框。
类型
TForm1 = class(TForm)
过程form create(Sender:to object);
私有
{私有声明}
公共
{公共声明}
end;
var
form 1:t form 1;
实现
{$R *。dfm}
程序TForm1。FormCreate(发件人:to object);
var
pt: array [0..4]的TPoint
m _ rgn:HRGN;
begin
pt[0]。x:=自我。宽度div 2;
pt[0]。y:= 0;
pt[1]。x:= 0;
pt[1]。y:=自我。高度div 2;
pt[2]。x:=自我。宽度div 2;
pt[2]。y:=自我。身高;
pt[3]。x:=自我。宽度;
pt[3]。y:=自我。高度div 2;
pt[4]。x:=自我。宽度;
pt[4]。y:= 0;
m _ rgn:= CreatePolygonRgn(pt,5,WINDING);
SetWindowRgn(self。Handle,m_rgn,TRUE);
end;
结束。
保存文件,然后按F9运行程序。结果如图1-3所示。
图程序运行结果
多边形形状的制作方法不仅是本例中介绍的一种,还涉及到如何制作更复杂的形状。希望读者多体验,多做个性化的形式。
位律师回复
0条评论