我们常看到有许多不规则的窗体, 像Photoshop启动窗体以及一下破解软件也常是一些不规则窗体还有QQ,Windows 提供了不规则窗体的方法有多种, 我们先学习一下通过Rgn来实现。
实现方法:
1. 创建一个想要的状态区域(HRGN);
2. 使用SetWindowRgn函数将区域做为参数即可实现不规则窗体.
一、关键代码
RECT
rtClient
;
GetClientRect ( hWnd , & rtClient );
HRGN hRgn ;
hRgn = CreateEllipticRgn ( rtClient . left , rtClient . top , rtClient . right , rtClient . bottom );
SetWindowRgn ( hWnd , hRgn , TRUE );
DeleteObject ( hRgn );
GetClientRect ( hWnd , & rtClient );
HRGN hRgn ;
hRgn = CreateEllipticRgn ( rtClient . left , rtClient . top , rtClient . right , rtClient . bottom );
SetWindowRgn ( hWnd , hRgn , TRUE );
DeleteObject ( hRgn );
以当前窗体区域大小创建一个椭员的RGN,并以此RGN作为窗体形状
二、API讲解
int SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
hWnd -- 当前窗体
hRgn -- 窗体的形状
bRedraw -- 调用完后更新
功能: 通过指定区域来改变窗体的形状
三、程序效果