首页 理论教育CRgn类的使用技巧-VC++MFC视频教程

CRgn类的使用技巧-VC++MFC视频教程

【摘要】:一般画面都是矩形,选用了CRgn修饰的画面输出之后,画面就被剪切成不规则的形状。CRgn类的主要成员见表7-7。表7-7 CRgn类的主要成员创建一个工程名为“Rgn”的对话框程序,用于演示选择区域后的画面输出效果。图7-23 查看运行结果3)在OnPaint函数的末尾添加两行代码,将两个不规则区域合并后设置窗口的形状。rg1.CombineRgn;SetWindowRgn;4)为了让窗口形状和画面一致,修改主对话框的边框为“None”,如图7-24所示。图7-25 添加WM_NCHITTEST消息映射函数6)修改消息映射函数代码。

一般画面都是矩形,选用了CRgn修饰的画面输出之后,画面就被剪切成不规则的形状。就好像是在一个四方形的照片上镶嵌了一个椭圆形的镜框。CRgn类的主要成员见表7-7。

表7-7 CRgn类的主要成员

978-7-111-46378-8-Chapter07-57.jpg

创建一个工程名为“Rgn”的对话框程序,用于演示选择区域后的画面输出效果。

1)导入一个200×200px左右的位图资源(.bmp)文件,再修改主对话框的WM_PAINT消息映射函数代码。

978-7-111-46378-8-Chapter07-58.jpg

978-7-111-46378-8-Chapter07-59.jpg

2)编译并运行,测试代码。输出图像的边缘是不规则形状的,如图7-23所示。

978-7-111-46378-8-Chapter07-60.jpg

图7-23 查看运行结果

3)在OnPaint函数的末尾添加两行代码,将两个不规则区域合并后设置窗口的形状。

rg1.CombineRgn(&rg1,&rg2,RGN_OR);

SetWindowRgn(rg1,TRUE);(www.chuimin.cn)

4)为了让窗口形状和画面一致,修改主对话框的边框为“None”,如图7-24所示。

978-7-111-46378-8-Chapter07-61.jpg

图7-24 编辑主对话框资源

5)为了可以用鼠标单击窗口客户区拖动,添加WM_NCHITTEST消息映射函数,如图7-25所示。

978-7-111-46378-8-Chapter07-62.jpg

图7-25 添加WM_NCHITTEST消息映射函数

6)修改消息映射函数代码。

978-7-111-46378-8-Chapter07-63.jpg

7)编译并运行,测试代码,如图7-26所示。

978-7-111-46378-8-Chapter07-64.jpg

图7-26 查看运行结果

运行时的主窗口是两个不规则形状区域合并后的形状,并且单击不规则形状窗口可以拖动。