1

私のアプリケーションの1つのケースでは、ダイアログのOnInitDialogで、またはこの関数の直後にアプリケーションを終了したいと思います。それを行う方法はありますか?

OnInitDialogでSendMessageを呼び出し、送信されたメッセージのハンドラーでOnCloseを呼び出して、Windowsメッセージを使用しようとしましたが、ダイアログが表示されたままであるため、意図したとおりに機能しませんでした。

4

3 に答える 3

1

PostQuitMessage(0)WM_INITDIALOGハンドラー本体でジョブを実行します。

于 2011-10-10T21:24:24.043 に答える
0

メッセージXを送信することにより、ダイアログの隅にあるをクリックするユーザーをシミュレートできます。WM_SYSCOMMAND

PostMessage(WM_SYSCOMMAND, SC_CLOSE, 0);
于 2012-05-01T14:59:58.863 に答える
0

最も簡単な解決策:

    CMyDialog::OnInitDialog()
    {
       if( "My Condition is invalid" )
       {
         EndDialog(-1);
         return FALSE;
       }
    }

EndDialogの直後に「returnFALSE」を実行する必要があります。これは、 MicrosoftのドキュメントCDialog(classe)で読むことができるように、EndDialogはダイアログをすぐに閉じないが、Microsoftによって処理されたときにダイアログを終了するために有効にする必要がある通知を生成するためです。 。

于 2022-01-31T18:27:15.597 に答える