【Demo 0042】不规则窗体
我们常看到有许多不规则的窗体, 像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 -- 调用完后更新
功能: 通过指定区域来改变窗体的形状
三、程序效果