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ドキュメントには、戻り値に関して次のように記載されています。

メッセージが利用可能な場合、戻り値はゼロ以外です。

利用可能なメッセージがない場合、戻り値はゼロです。

メッセージ キューが空の場合、実際には 0 が返されますFALSE。したがって、メッセージ キューが空になることはありません。その理由として最も可能性が高いのは、処理するメッセージの 1 つがDispatchMessage原因で、同じメッセージがキューにポストされるということです。

于 2012-03-18T17:15:05.117 に答える