`
txf2004
  • 浏览: 6886356 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

 
阅读更多

相信学过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变得无效从而进行重绘

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics