社区
Delphi
帖子详情
如何创建不规则形窗体?
盘谷
2000-01-11 04:16:00
...全文
178
3
打赏
收藏
如何创建不规则形窗体?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
盘谷
2000-01-11
打赏
举报
回复
谢谢你们,我已经成功了!
Venne
2000-01-11
打赏
举报
回复
我的站点上有一个叫做COOLFORM的控件,只要你做出不规则形状的图片,然后过滤掉边缘的颜色就可以了。
它的实现方法你可以研究一下它的源码,主要精神是多边矩形的剪切。
http://best.163.com/~venne/download/component/coolform.zip
size:187kb
WelCome to Venne's Delphi Site: delphiweb.126.com :)
Firing_Sky
2000-01-11
打赏
举报
回复
这里有创建椭圆窗体的一段代码
procedure TFrmMain.FormCreate(Sender: TObject);
var
rgn:HRGN;
begin
rgn:=CreateEllipticRgn(0,0,150,150);
SetWindowRgn(self.Handle, rgn, true);
end;
更一般的用CreatePolygonRgn代替CreateEllipticRgn就可以做出任意形状的窗体了
C# 制作非矩
形
窗体
不规则
特效
窗体
文字
形
窗体
KATAOK-KTV
C# 制作非矩
形
窗体
不规则
特效
窗体
文字
形
窗体
KATAOK-KTV C#制作一个非矩
形
窗体
之——文字
形
窗体
,你见过用文字作为
窗体
吗?通过本实例,你将学会到这个技巧。当然在实际应用中,字体样式的选择很重要,如果字体不适合做
窗体
,即使做出来,
窗体
也不会漂亮,因此大家通过这个实例仅是学到方法,制作出好的文字
窗体
还要靠大家的积累和实践。
VB 异型
窗体
T
形
窗体
不规则
窗体
特效
窗体
VB 异型
窗体
T
形
窗体
不规则
窗体
特效
窗体
和大家一起分享。
C#实现的
不规则
窗体
代码(有圆
形
、方
形
、
不规则
形
)
使用C#实现的
不规则
窗体
代码(有圆
形
、方
形
、
不规则
形
)。
Windows 中
不规则
窗体
的编程实现
一、序言 在绝大多数的Windows应用程序中,其
窗体
都是使用的正规正矩的矩
形
窗体
,例如我们常用的,“记事本”,“扫雷”,等等。矩
形
窗体
,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中使用足矣。但在某些娱乐游戏程序中使用就略显呆板些了,这时若用
不规则
窗体
替代原先的矩
形
窗体
,将会使这类程序更添情趣。典型的例子有windows 自代的Media Player,新版本的Media Player有个控制面板的选项,选中这些面板,播放器就以选中的面板
形
状出现,这时的播放器比以前版本的Media Player的古老矩
形
界面要生动有趣的多了。 要实现
不规则
窗体
不是太难,知道了基本原理后,你也可以
创建
各种有趣的
不规则
窗体
。 二、实现原理 所有的 Windows
窗体
都位于一个称为“region”中,
窗体
的大小如果超出“region”的范围,windows 会自动裁剪超出"region"范围那部分的
窗体
,使其不可见。所以,要
创建
不规则
窗体
有两个步骤:第一步就是
创建
不规则
"region".第二步就是将
窗体
放到
创建
的“region”中。 其中第二步很简单就调用一条语句即可。在SDK中调用API函数SetWindowRgn,该函数原型如下:int SetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw ); 其中hWnd为待设置的
窗体
句柄,hRgn为已经
创建
的"region"句柄,bRedraw代表是否要重绘
窗体
。在MFC 中使用窗口类CWnd的成员函数int CWnd::SetWindowRgn(HRGN hRgn, BOOL bRedraw );该函数的参数意义与API中同名函数相同。 相对与第二步,
创建
不规则
窗体
的第一步要复杂许多,并且
不规则
窗体
越复杂,
创建
其"region"的过程也越复杂。接下去我们将由浅入深地介绍各种
创建
”region”的方法。 在MFC中"region"对象,由CRgn类实现。CRgn的几乎每个成员函数都有同名的SDK API函数对应。 三、简单“region”的
创建
类CRgn
创建
一个新的"region"的简单方法有以下几个成员函数: BOOL CRgn::CreateRectRgn( int x1, int y1, int x2, int y2 );
创建
矩
形
的“region”。 BOOL CRgn::CreateEllipticRgn( int x1, int y1, int x2, int y2 );
创建
圆
形
或椭圆
形
“region”。 BOOL CRgn::CreateRoundRectRgn( int x1, int y1, int x2, int y2, int x3, int y3 );
创建
圆角矩
形
“region”。 BOOL CRgn::CreatePolygonRgn( LPPOINT lpPoints, int nCount, int nMode );
创建
多边
形
“region”。 这里以
创建
椭圆
窗体
为例,介绍椭圆
窗体
创建
的方法。在
创建
椭圆“region”的CreateEllipticRgn函数中,x1,y1指椭圆所在矩
形
的左上角坐标,x2,y2指该矩
形
的右下角坐标。 ....... ....... ....... (附代码实现)
VC
不规则
窗体
说明
对于MFC中构造
不规则
窗体
很实用,如构造系统自带椭圆
形
,还可以按自己的构造的线条来弄出个性
形
状的
窗体
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章