Winform窗体通常都是矩形的,而在实际编程中我们可能需要圆形、椭圆形或者不规则的背景图形状的窗体。在实现这种不规则窗体的绘制中,我们可以使用windows提供的api来实现。SetWindowRgn()是实现不规则窗体绘制的主要API接口函数。所有的 Windows 窗体都位于一个称为“region”中,窗体的大小如果超出“region”的范围,windows 会自动裁剪超出"region"范围那部分的窗体,使其不可见。所以,要创建不规则窗体有两个步骤:
第1步就是创建不规则"region";
(1)首先获得将要裁剪的窗体的控制器,假如我们的Form的名字叫PCSimulator,HWND hFig = FindWindow(NULL,(LPCSTR)"PCSimulator");
(2)绘制不规则区域 HRGN wndrgn = CreateEllipticRgn(x1, y1, x2, y2);
(3)将窗体放到创建的不规则区域中,SetWindowRgn(hFig,wndrgn,true);
需要包含的头文件为:#include "Windows.h" #include "Winuser.h"
需要用到的静态链接库为:user32.lib;//properties/Link/input/Additional Dependencies,添加user32.lib
第1步就是创建不规则"region";
第2步就是将窗体放到创建的“region”中。
(1)首先获得将要裁剪的窗体的控制器,假如我们的Form的名字叫PCSimulator,HWND hFig = FindWindow(NULL,(LPCSTR)"PCSimulator");
(2)绘制不规则区域 HRGN wndrgn = CreateEllipticRgn(x1, y1, x2, y2);
(3)将窗体放到创建的不规则区域中,SetWindowRgn(hFig,wndrgn,true);
需要包含的头文件为:#include "Windows.h" #include "Winuser.h"
需要用到的静态链接库为:user32.lib;//properties/Link/input/Additional Dependencies,添加user32.lib