永发信息网

mfc的Invalidate和UpdateWindow区别?我想立即重绘用哪个?

答案:1  悬赏:70  手机版
解决时间 2021-11-13 07:36
  • 提问者网友:自食苦果
  • 2021-11-12 20:33
mfc的Invalidate和UpdateWindow区别?我想立即重绘用哪个?
最佳答案
  • 五星知识达人网友:枭雄戏美人
  • 2021-11-12 21:22
Invalidate在消息队列中加入一条WM_PAINT消息,其无效区为整个客户区。而UpdateWindow直接发送一个WM_PAINT消息,其无效区范围就是消息队列中WM_PAINT消息(最多只有一条)的无效区。效果很明显,调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一定在队列头部,而调用UpdateWindow会使WM_PAINT消息马上执行的,绕过了消息队列。如果你调用Invalidate之后想马上更新屏幕,那就加上UpdateWindow()这条语句。

一般来说,很少用到“立即重绘”,还是让窗口符合消息机制比较好。如果希望立刻,就是Invalidate之后再UpdateWindow,也就是两个都要调用。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯