// Main message loop
MSG msg;
ZeroMemory( &msg, sizeof( msg ) );
while(msg.message!=WM_QUIT)
{
if(PeekMessage( &msg, NULL, 0U, 0U, PM_REMOVE ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
else
{
Render();
}
}
“渲染”功能尚未执行
答案 0 :(得分:2)
PeekMessage
文档说明了返回值:
如果有消息,则返回值为非零值。
如果没有可用的消息,则返回值为零。
当消息队列为空时,它确实将返回零,即FALSE
。因此,结论是消息队列永远不会为空。最可能的解释是,您在DispatchMessage
中处理的其中一条消息会导致将相同的消息发布到队列中。