VC中创建可拖动的按钮导致主窗口消息循环被阻断该如何解决

baidu_31846749 2015-12-02 08:21:00
如题,主窗口循环是
while(msg.message!=WM_QUIT)
{
if(PeekMessage(....))
{
翻译,分发...
}
else
{ g_tNow=GetTickCount();
if(g_tNow-g_tPre>=60)
Game_Paint(hWnd);
}
每间隔60ms就绘图,没有相应WM_PAINT消息。

按钮消息处理中,应用窗口子类化,对LBUTTONDOWN消息处理中加入了PostMessage,放入WM_TCLBUTTONDOWN消息,可以拖动按钮,但是主窗口的绘图被打断了,必须拖动完毕才继续响应消息,该如何解决?可以通过MoveWindow来实现非阻塞的移动吗?



}
...全文
137 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Magic丶旭 2015-12-14
  • 打赏
  • 举报
回复
引用 2 楼 baidu_31846749的回复:
[quote=引用 1 楼 csdn1223537114 的回复:] 如果PeekMessage不成功才会走到else那边啊,你的绘图只有在没有消息的时候才会绘图,可以用线程或者定时器解决
PeekMessage是非阻塞的啊,不是会立即返回的咩?[/quote] 在拖动按钮的时候会产生WM_MOVE消息,消息循环中处理了这个消息就不能执行绘图代码了
baidu_31846749 2015-12-08
  • 打赏
  • 举报
回复
引用 1 楼 csdn1223537114 的回复:
如果PeekMessage不成功才会走到else那边啊,你的绘图只有在没有消息的时候才会绘图,可以用线程或者定时器解决
PeekMessage是非阻塞的啊,不是会立即返回的咩?
Magic丶旭 2015-12-06
  • 打赏
  • 举报
回复
如果PeekMessage不成功才会走到else那边啊,你的绘图只有在没有消息的时候才会绘图,可以用线程或者定时器解决

15,978

社区成员

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

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