私のアプリケーションの1つのケースでは、ダイアログのOnInitDialogで、またはこの関数の直後にアプリケーションを終了したいと思います。それを行う方法はありますか?
OnInitDialogでSendMessageを呼び出し、送信されたメッセージのハンドラーでOnCloseを呼び出して、Windowsメッセージを使用しようとしましたが、ダイアログが表示されたままであるため、意図したとおりに機能しませんでした。
私のアプリケーションの1つのケースでは、ダイアログのOnInitDialogで、またはこの関数の直後にアプリケーションを終了したいと思います。それを行う方法はありますか?
OnInitDialogでSendMessageを呼び出し、送信されたメッセージのハンドラーでOnCloseを呼び出して、Windowsメッセージを使用しようとしましたが、ダイアログが表示されたままであるため、意図したとおりに機能しませんでした。
PostQuitMessage(0)
WM_INITDIALOG
ハンドラー本体でジョブを実行します。
メッセージX
を送信することにより、ダイアログの隅にあるをクリックするユーザーをシミュレートできます。WM_SYSCOMMAND
PostMessage(WM_SYSCOMMAND, SC_CLOSE, 0);
最も簡単な解決策:
CMyDialog::OnInitDialog()
{
if( "My Condition is invalid" )
{
EndDialog(-1);
return FALSE;
}
}
EndDialogの直後に「returnFALSE」を実行する必要があります。これは、 MicrosoftのドキュメントCDialog(classe)で読むことができるように、EndDialogはダイアログをすぐに閉じないが、Microsoftによって処理されたときにダイアログを終了するために有効にする必要がある通知を生成するためです。 。