Microsoft DirectX 8.0 (C++)

ステップ 3 : システム メッセージの処理

アプリケーション ウィンドウを作成し、Microsoft® Direct3D® を初期化したら、シーンのレンダリングを開始できる。通常、Microsoft Windows® アプリケーションはメッセージ ループのシステム メッセージを監視し、キューにメッセージがなければいつでもフレームのレンダリングを行う。ただし、CreateDevice サンプル プロジェクトでは、キューに WM_PAINT メッセージが入れられるまで待機する。このメッセージは、ウィンドウの全体または一部を再描画する必要があることをアプリケーションに通知する。

// メッセージ ループ。
MSG msg; 
while( GetMessage( &msg, NULL, 0, 0 ) )
{
    TranslateMessage( &msg );
    DispatchMessage( &msg );
}

ループが実行されるたびに、DispatchMessageMsgProc を呼び出して、キュー内のメッセージを処理する。WM_PAINT がキューに入れられると、アプリケーションは、ウィンドウを再描画するアプリケーション定義関数 Render を呼び出す。次に、Microsoft Win32® 関数 ValidateRect が呼び出されて、クライアント領域全体が検証される。

このメッセージ処理関数のサンプル コードを以下に示す。

LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
    switch( msg )
    {
        case WM_DESTROY:
            PostQuitMessage( 0 );
            return 0;

        case WM_PAINT:
            Render();
            ValidateRect( hWnd, NULL );
            return 0;
    }

    return DefWindowProc( hWnd, msg, wParam, lParam );
}

アプリケーションでシステム メッセージを処理するようになったので、次のステップでは、ディスプレイをレンダリングする。これについては、「ステップ 4 : シーンのレンダリングおよび表示」で説明する。