VisualC++ WindowsForm不规则窗体的绘制

Winform窗体通常都是矩形的,而在实际编程中我们可能需要圆形、椭圆形或者不规则的背景图形状的窗体。在实现这种不规则窗体的绘制中,我们可以使用windows提供的api来实现。SetWindowRgn()是实现不规则窗体绘制的主要API接口函数。所有的 Windows 窗体都位于一个称为“region”中,窗体的大小如果超出“region”的范围,windows 会自动裁剪超出"region"范围那部分的窗体,使其不可见。所以,要创建不规则窗体有两个步骤:
第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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值