CDialog::DoModal
されたときにモーダル ダイアログ ボックスを開始し、ダイアログ ボックスの結果を返すには、このメンバー関数を呼び出します。
virtual INT_PTR DoModal( );
戻り値
ダイアログ ボックスを閉じるために使用される、CDialog::EndDialog のメンバー関数に渡された nResult のパラメーター値を指定する int の値。戻り値は [出力ウィンドウ] が GetLastErrorのエラー情報を含める他のエラーが発生した関数がダイアログ ボックスを作成できない場合または IDABORT、– 1 です。
解説
このメンバー関数は、ダイアログ ボックスがアクティブな間、ユーザーとのやり取りを処理します。これはダイアログ ボックスをモーダルにするものですが; つまり、ユーザーは、他のウィンドウとダイアログ ボックスが閉じるまで操作できません。
ユーザーがダイアログ ボックスのプッシュ ボタンの 1 種類が[OK]または[キャンセルなど、メッセージ ハンドラー メンバー関数、OnOK または OnCancelなどをクリックすると、ダイアログ ボックスを閉じるようにするために呼び出されます。既定の OnOK のメンバー関数を検証し、ダイアログ ボックスのデータを更新し、結果 IDOKを使用してダイアログ ボックスを閉じ、既定の OnCancel のメンバー関数は、ダイアログ ボックスのデータの検証や更新せずに結果 IDCANCEL を使用してダイアログ ボックスを閉じます。動作を変更するには、各メッセージ ハンドラー関数をオーバーライドできます。
[!メモ]
PreTranslateMessage はモーダル ダイアログ ボックスのメッセージを処理するには、というされます。
使用例
void CMyDialog::OnMenuShowAboutDialog()
{
// Construct the dialog box passing the
// ID of the dialog template resource
CDialog aboutDlg(IDD_ABOUTBOX);
// Create and show the dialog box
INT_PTR nRet = -1;
nRet = aboutDlg.DoModal();
// Handle the return value from DoModal
switch (nRet)
{
case -1:
AfxMessageBox(_T("Dialog box could not be created!"));
break;
case IDABORT:
// Do something
break;
case IDOK:
// Do something
break;
case IDCANCEL:
// Do something
break;
default:
// Do something
break;
};
}
必要条件
ヘッダー: afxwin.h