CDialog::DoModal
モーダル ダイアログ ボックスを起動します。この関数は、ダイアログ ボックスの実行が終了したときに戻ります。
virtual INT_PTR DoModal( );
戻り値
ダイアログ ボックスを閉じる CDialog::EndDialog メンバー関数のパラメーター nResult に渡す int 値を返します。 ダイアログ ボックスを作成できなかった場合は、戻り値 –1 を返します。それ以外のエラーが発生した場合は、IDABORT を返します。その場合、Output window に GetLastError のエラー情報が含まれます。
解説
このメンバー関数は、ダイアログ ボックスがアクティブの間すべての対話を処理します。 これにより、ダイアログ ボックスがモーダルになります。つまり、そのダイアログ ボックスを閉じるまで、ユーザーはほかのウィンドウを操作できません。
[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