您的位置:首页 > 编程语言

SDK编程中有效区域与无效区域的盲区WM_PAINT消息何时发送的。。。

2011-10-15 17:27 375 查看
相信学过MFC或者写过 用MFC写过windows应用程序的人都知道 我们可以很简单的创建一个windows应用程序但是却 不知道其中的原理

利用SDK写windows程序的人 对内部原理比较了解但是对于上来就用MFC写程序的人来说 似乎 MFC底层不可触摸 ,因为微软对windows API 封装的太厉害了

我曾经就 WM_PAINT 消息何时发送的以及 Valid Area(有效区域) Invalid Area(无效区域 ) 很模糊

比如说我们打开2个窗体 一个位于另一个的上面 遮住上层窗体的一部分 、、 那么上层窗体被遮住的地方就叫做 Invald Area 无效区域 那么windows 系统会通知应用程序 进行重回这个区域

但是我们发现在 Client Area 客户区域 中只有被遮住的那部分进行了重绘。 有些人会有些不解 。。其实 windows 系统只要求应用程序对 被遮住的无效区域 进行重绘

当遮住的窗体移动的时候 那么操作系统就会发出 WM_PAINT 消息 对应 MFC中的就是 OnDraw()函数 、、、进行重回操作 。 这就是无效区域的重绘

另外 MFC CWnd类中的 Invalidate函数会使Client Area变得无效从而进行重绘
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐