旧帖重发:请问有熟悉Windows图形窗口刷新机制的吗?

shellyyee 2007-04-26 02:38:01
本人自己开发了一个GUI,现在在刷新上有个问题处理不好,想借鉴一下windows操作系统是如何处理这个问题的。
例如在桌面上有3个窗口A、B、C,它们的在桌面上的位置为A(100,100,300,300)、B(400,100,600,300)、C(200,50,500,350),C窗口在A、B窗口之上。
问题1:当A、B窗口上图像有刷新时,它们只会刷新没有被C窗口遮住的地方,window是是如何实现这个功能的?它的原理是什么?
问题2:当把C窗口关闭的时候,A和B窗口是不是整个窗口都重画了还是只重画了被C窗口遮住的部分?这个问题扩展一下,是不是桌面上每个窗口关闭时,其它窗口都收到重画的消息?如何判断哪个窗口需要重画哪个窗口不需要重画?

请问有了解这方面的原理的吗?有相关代码更好。谢谢!
...全文
330 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nf3 2007-04-28
  • 打赏
  • 举报
回复
DING
goodboyws 2007-04-26
  • 打赏
  • 举报
回复
可以用InvalidateRect/InvalidateRgn来让窗口进行部分重绘,也可以用SelectClipRgn来控制dc的重画区域
菜牛 2007-04-26
  • 打赏
  • 举报
回复
GDI通过无效区域来判断是否需要重绘。

19,464

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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