InvalidateRect的疑惑

一个叫阿三的人 2013-02-19 06:08:55
用InvalidateRect()函数,将客户区的某一小矩形部分无效化,但是在WM_PAINT消息里包括整个客户区的绘制,那么在手动调用InvalidateRect()从而触发WM_PAINT消息后,那些绘制无效区域外的代码是不是不执行呢
...全文
87 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2013-02-20
  • 打赏
  • 举报
回复
WM_PAINT 里的也未必就是整个客户区域吧,应该是需要重新绘制的区域。
“绘制无效区域外的代码”,其实是不存在这个的吧。WM_PAINT 处理里,重新绘制代码不存在有效区域或无效区域的分别,因为每次的 WM_PAINT 消息的区域显然是不会一样的。所以,简单的程序,就是将所有内容全部绘制一边;复杂的、确实全绘制一边比较费力的话,会逐件匹配是否触碰到无效区域即需要重新绘制,需要的话就重新绘制,不需要的就略过。

6,873

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧