1

私は同様のタイプのものを実装しています-以下のコードのelse部分にいくつかのメッセージボックスがあります..デバッグで得られるのは、同じメッセージボックスが何度も何度もあり、それが終了しないことです(これにより、プログラムが作成されます)クラッシュし、ラップトップを再起動する必要があります..解決策はありますか? MFC アプリケーションを使用して、ウィンドウ エクスプローラーのプレビュー ペインにボタンを作成しています。すべて問題ありませんが、これは、下のループに入ると抜け出せないという問題です (つまり、DispatchMessage または TranslateMessage に、この関数を何度も呼び出す何かがあるということです)..できませんでしたそれは何を見つけますか??

コードは次のとおりです-

while( (bRet = GetMessage( &msg, NULL, 0, 0 )) != 0)
{ 
    if (bRet == -1)
    {
        // handle the error and possibly exit
    }
    else
    {
        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
//Onee message box here
    }
}
4

1 に答える 1

1

最後に、trueを返すとわかりました。このループでは、コントロールはループから出てきます(しかし、それは良いアプローチではありません)が、この getmessage は、プログラムが正常に動作していたので、実際には役に立ちませんでした。その存在下では、無限ループが発生していました。CreateDialogParam() を使用してダイアログを作成し、この CreateDialogParam() を介して DialogProc が呼び出され、WM_Commnands を使用してアプリケーションに従って受信したメッセージを処理し、この getmessage を使用していないと感じたため (間違っている場合は誰かを指摘してください)

于 2013-07-23T10:51:04.493 に答える