5

ウィンドウのサイズが変更されたときにグラフィック デバイス バッファーのサイズを変更しようとしていますが、イベントを検出できません。

これは C++ Windows プログラミングです。私は試した:

            while(WM_QUIT != msg.message){
                if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)){
                    switch(msg.message){
                    case WM_SIZE:
                        return; //<-- If the program closes because of this return, then I know I found the right statements.
                    }
                    //TranslateMessage(&msg);
                    //DispatchMessage(&msg);
                }else{
                    poly.setConstantBuffer(space.getCamera());
                    poly.draw(iSize);

                    graphics.render();
                }
            }

戻っていないということは、それは正しくないということです。サイズ変更イベントをキャッチする正しい方法は何ですか?

4

2 に答える 2

3

メッセージ ループではなく、ウィンドウ プロシージャでメッセージを処理する必要があります。PeekMessage送信済みメッセージを返さずWM_SIZE、送信済みメッセージです。

于 2012-10-10T04:00:33.967 に答える
3

WM_SIZEサイズ変更中にウィンドウに送信されるメッセージはこれだけではありません。TranslateMessage()andへの呼び出しのコメントを外す必要があるDispatchMessage()ため、他のメッセージが処理されます。また、ウィンドウのメッセージ ディスパッチ プロシージャは、未処理のメッセージをDefWindowProc()デフォルトの処理のために に渡す必要があります。あなたはそれをすべてやっていますか?

于 2012-10-10T03:55:35.120 に答える