02测试WM_PAINT消息

上传人:夏** 文档编号:434231345 上传时间:2023-05-08 格式:DOC 页数:2 大小:54KB
返回 下载 相关 举报
02测试WM_PAINT消息_第1页
第1页 / 共2页
02测试WM_PAINT消息_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《02测试WM_PAINT消息》由会员分享,可在线阅读,更多相关《02测试WM_PAINT消息(2页珍藏版)》请在金锄头文库上搜索。

1、测试WPAINT消息M_PAI消息是当窗口的客户区由于各种原因内容不再有效时,由OS、其他应用程序或本应用程序的其他部分通知程序客户区不再有效所产生的消息。M_INT消息的标准处理过程如下:h = BeginP(Wn, );/得到hdc/进行客户区的重绘REC rt;GetClientRet(hWn, &t);DText(dc, szHello,trlen(sHello),r, _EE);EnPint(hWd, &p);/释放hdc需要注意的是WM_PINT消息只是在无效矩形内绘图,绘图时出现在无效矩形外的部分并不能显示。无效矩形的位置信息存储egPint调用时填充的PAITSTUCT结构的P

2、ain中;为了测试无效矩形,有以下窗口:中间的部分是无效矩形,如果绘制一条直线从点(p+50,le50)到(top+,rg+5),如果绘制出的直线只在矩形中间的部分出现就说明WPAINT消息绘图只是在无效矩形内部绘图;如果绘制出的直线在矩形左边与右边还分别有一部分则说明WM_PAINT消息绘图不只是在无效矩形内部.1、 新建工程PanTest2、 在窗口的消息处理的switch语句的WM_PAIN消息的处理部分,删除原理输入”Hello world”的部分;增加以下代码:MveToEx(hdc,ps。rcint。let0,psrcPanop+50,NULL);LneTo(hc,ps。Paint

3、ight50,ps。rcainto+50);3、 编译运行程序!4、 启动一个计算器,并将计算器放置到测试窗口的中央;5、 最小化计算器、最小化测试程序;6、 还原测试程序、还原计算器,现在计算器与测试程序的位置关系如图;7、 现在计算器覆盖的部分是测试程序的无效区域,最小化计算器,并用鼠标单击测试程序的标题栏,观察原来计算器覆盖部分的线段长度。思考题:1、 如何使客户区的有效?提示:BOL ValidateRect函数2、 如何使客户区无效,通知应用程序更新客户区?提示:BOOLIvalidaeRect函数3、 如何使WPAIT只重绘不擦除无效区域的背景?提示:BOL Invaldaet函数的第三个参数4、 运行02Painte0目录下的程序,分别点击【File】菜单下的个菜单项观察客户区的变化,并分析代码文中不足之处,请您见谅! /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号