1
        // 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();
            }
        }

“渲染”功能尚未执行

4

1 回答 1

2

PeekMessage文档说明了有关返回值的内容:

如果消息可用,则返回值非零。

如果没有消息可用,则返回值为零。

当消息队列为空时,它确实会返回零,即FALSE。因此,结论是消息队列永远不会为空。最可能的解释是,您处理的其中一条消息DispatchMessage导致同一条消息被发布到队列中。

于 2012-03-18T17:15:05.117 回答