mfc的Invalidate和UpdateWindow区别?我想立即重绘用哪个?
1个回答
展开全部
Invalidate在消息队列中加入一条WM_PAINT消息,其无效区为整个客户区。而UpdateWindow直接发送一个WM_PAINT消息,其无效区范围就是消息队列中WM_PAINT消息(最多只有一条)的无效区。效果很明显,调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一定在队列头部,而调用UpdateWindow会使WM_PAINT消息马上执行的,绕过了消息队列。如果你调用Invalidate之后想马上更新屏幕,那就加上UpdateWindow()这条语句。
一般来说,很少用到“立即重绘”,还是让窗口符合消息机制比较好。如果希望立刻,就是Invalidate之后再UpdateWindow,也就是两个都要调用。
一般来说,很少用到“立即重绘”,还是让窗口符合消息机制比较好。如果希望立刻,就是Invalidate之后再UpdateWindow,也就是两个都要调用。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询