GUI 剖析之 7)我想写不规则窗口程序

当我们玩游戏的时候,我们会发现它们的登录窗口是多么的炫彩,比如诛仙CF,DNF等这些都是对窗口的一些操作,下面来实现自己的美丽窗口。

 

static HRGN hRgnClip ;

HRGN    hRgnTemp[6] ;

if (hRgnClip)

{

DeleteObject (hRgnClip) ;

}

hRgnTemp[0]   = CreateEllipticRgn (0, cyClient / 3,

cxClient / 2, 2 * cyClient / 3) ;

hRgnTemp[1]   = CreateEllipticRgn (cxClient / 2, cyClient / 3,

cxClient, 2 * cyClient / 3) ;

hRgnTemp[2]   = CreateEllipticRgn (cxClient / 3, 0,

2 * cxClient / 3, cyClient / 2) ;

hRgnTemp[3]   = CreateEllipticRgn (cxClient / 3, cyClient / 2,

2 * cxClient / 3, cyClient) ;

hRgnTemp[4]   = CreateRectRgn (0, 0, 1, 1) ;

hRgnTemp[5]   = CreateRectRgn (0, 0, 1, 1) ;

hRgnClip      = CreateRectRgn (0, 0, 1, 1) ;

CombineRgn (hRgnTemp[4], hRgnTemp[0], hRgnTemp[1], RGN_OR) ;

CombineRgn (hRgnTemp[5], hRgnTemp[2], hRgnTemp[3], RGN_OR) ;

CombineRgn (hRgnClip,    hRgnTemp[4], hRgnTemp[5], RGN_XOR) ;

SetWindowRgn(hWnd,hRgnClip,TRUE);

for (i = 0 ; i < 6 ; i++)

{

DeleteObject (hRgnTemp[i]) ;//对象用完要记得释放,否则CPU顶不住,PC会崩溃

}

上面的API 都是GDI里面的,完这些代码你会发现会显示一朵花一样的窗口(这些代码在WM_CREATE消息里执行),当然GDI+或者D3Dopengl之类的渲染效果会更好,这里不做介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值