【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);

     以当前窗体区域大小创建一个椭员的RGN,并以此RGN作为窗体形状

二、API讲解

     int SetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)

     hWnd      -- 当前窗体

     hRgn       -- 窗体的形状

     bRedraw   -- 调用完后更新

     功能: 通过指定区域来改变窗体的形状

三、程序效果

   image

 

演示代码

posted @ 2011-09-03 23:46  zTercel  阅读(266)  评论(0编辑  收藏  举报