如何解决在处理windowproc消息的同时继续更新和呈现
我创建了一个win32 C ++应用程序,该应用程序使用Direct2d在窗口中绘制内容。在如下所示的循环中,我调用渲染和更新,同时还查看所有消息。但是,只要我有WM_COMMAND
让WindowProc
调用MessageBox()
或DiaLogBox()
,我的update&render循环就不再执行,并且绘图窗口冻结。对于另一个循环结构是否有一个简单的解决方法,还是我需要进入一个未知的多线程世界?
while (message.message != WM_QUIT)
{
if (PeekMessage(&message,NULL,PM_REMOVE))
dispatchMessage(&message);
else
{
Update();
BeginDraw();
Render();
EndDraw();
}
}
编辑:由于普遍的需求,我已经将“丑陋”的机制改变为另一种方法,但存在相同的问题
bool runGame = true;
while (runGame)
{
while (PeekMessage(&message,PM_REMOVE))
{
dispatchMessage(&message);
if (message.message == WM_QUIT)
runGame = false;
}
Update();
BeginDraw();
Render();
EndDraw();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。