知识大全 巧妙用Delphi设计多边形窗体
Posted 知
篇首语:仰天大笑出门去,我辈岂是蓬蒿人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 巧妙用Delphi设计多边形窗体相关的知识,希望对你有一定的参考价值。
巧妙用Delphi设计多边形窗体 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
本文将介绍如何利用Windows提供的制作界面函数制作一个多边形窗体 制作多边形窗体的关键在于设定多边形的区域 并根据这个指定的区域改变窗体的形状 Windows的CreatePolygonRgn和SetWindowRgn函数可以解决这两个难点 利用以下代码即可将窗体设置为一个五边形 procedure TForm FormCreate(Sender: TObject); var pt: array [ ] of TPoint; m_rgn: HRGN; begin pt[ ] x:=self Width div ; pt[ ] y:= ; pt[ ] x:= ; pt[ ] y:=self Height div ; pt[ ] x:=self Width div ; pt[ ] y:=self Height; pt[ ] x:=self Width; pt[ ] y:=self Height div ; pt[ ] x:=self Width; pt[ ] y:= ; m_rgn:=CreatePolygonRgn(pt WINDING); SetWindowRgn(self Handle m_rgn TRUE); end; 该程序首先定义了一个TPoint类型的数组pt 在其中存储了一个五边形的数据 然后使用CreatePolygonRgn函数将这个五边形转换成为一个区域 最后使用SetWindowRgn函数 根据五边形指定的区域改变窗体的形状 程序代码如下 unit Unit ; interface uses Windows Messages SysUtils Variants Classes Graphics Controls Forms Dialogs; type TForm = class(TForm) procedure FormCreate(Sender: TObject); private Private declarations public Public declarations end; var Form : TForm ; implementation $R * dfm procedure TForm FormCreate(Sender: TObject); var pt: array [ ] of TPoint; m_rgn: HRGN; begin pt[ ] x:=self Width div ; pt[ ] y:= ; pt[ ] x:= ; pt[ ] y:=self Height div ; pt[ ] x:=self Width div ; pt[ ] y:=self Height; pt[ ] x:=self Width; pt[ ] y:=self Height div ; pt[ ] x:=self Width; pt[ ] y:= ; m_rgn:=CreatePolygonRgn(pt WINDING); SetWindowRgn(self Handle m_rgn TRUE); end; end 保存文件 然后按F 键运行程序 结果如图 所示 > > 制作多边形窗体的方法并不止本实例所介绍的一种 后面还会涉及到如何制作更为复杂的窗体 希望读者多加体会 制作出更加有个性的窗体 cha138/Article/program/Delphi/201311/8430相关参考
Delphi学堂之绑架窗体之Delphi版 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!绑架窗体顾
用VB.NET设计各种形状的窗体界面一 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 窗体是程序
用VB.NET设计各种形状的窗体界面二 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 结合上
如何使用Delphi实现无边界窗体的移动 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在用De
在Delphi中巧改窗体文件实现控件数组化 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 
自定义事件实现不同窗体间的通讯Delphi篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!要实现子
在Web窗体设计器中未能加载该文件 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 用visual
用Delphi设计循环播放声音文件程序 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
用Delphi2005学设计模式之工厂方法篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文完成
用Delphi2005学设计模式之简单工厂篇 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!工厂模式