问一个消息的调用顺序的问题

longchisihai3 2013-11-28 09:41:51
假如有这样一个代码

…………


case WM_PAINT:
………………
break;


case WM_COMMAND:
………………
invalidaterect(hwnd,NULL,true);
updateWindow(hwnd);
代码A;
break;

如果现在在处理WM_COMMAND消息 当执行到updateWindow(hwnd); 产生的WM_PAINT消息会跳过消息队列直接调用窗口过程。
我想问的是先执行WM_PAINT消息 在执行代码A 还是先把当前的消息,也就是WM_COMMAND处理完 在处理WM_PAINT消息?
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
打你屁屁 2013-11-29
  • 打赏
  • 举报
回复
调用UpdateWindow函数使WM_PAINT被直接发送到目标窗口,从而导致窗口立即重绘。
昨夜无风 2013-11-28
  • 打赏
  • 举报
回复
UpdateWindow将导致Windows用WM_PAINT消息调用窗口过程(如果整个客户区有效,则不调用窗口过程)。这一WM_PAINT消息不进入消息队列,直接由WINDOWS调用窗口过程。窗口过程完成刷新以后立刻退出,WINDOWS将控制返回给程序中UpdateWindow调用之后的语句。 因此,先刷新再继续!

15,979

社区成员

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

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