当前位置:首页 > 游戏相关 > 正文

C语言实现不规则窗口,实现穿越火线登录窗口

C语言实现不规则窗口,实现穿越火线登录窗口-第1张-游戏相关-龙启科技

Windows窗体都有位于一个区域("region")中,窗体的大小如果超出"region”的范围,windows会自动裁剪超出“region”范围的区域,使得窗体形状保持不规则“region”的区域,形成不规则窗体,因此,要创建一个不规则窗体,需要如下两个步骤:

(1)第一步是创建不规则的区域"region"

(2)第二步就是将窗体放到不规则的"region"中

创建region的方式有很多种,有如下方法:

(1)利用windowsApi函数创建region,有CreateEllipticRgn(int x1,int y1,int x2,int y2)创建椭圆区域, CreatePolygonRgn(POINTAPI lpPoint, long nCount, long nPolyFillMode)创建多边形局域,还有矩形区域,圆角矩形区域等等。代码形式如 HRGN hrgn = CreateEllipticRgn(50,50,250,250);

(2)用作图法创建region,我们可以使用BeginPath( HDC hdc)和EndPath(HDC hdc)用法记录绘图的过程,然后使用HRGN PathToRegion( HDC hdc )将绘图过程转换为HRGN型区域。

(3)用图像创建region,这种方法笔记复杂,步骤如下所示:

a.准备要创建region的bmp位图,将其中不需要的颜色(即作为透明色)标记为MaskColor;

b.把准备的位图读取到dc中;

c.根据位图上我们想要的像素一起拼接形成相应的region;

d.根据不则的region创建对应的窗口

部分实现代码

效果图