次の方法で共有


CDialog::DoModal

更新 : 2007 年 11 月

モーダル ダイアログ ボックスを起動します。この関数は、ダイアログ ボックスの実行が終了したときに戻ります。

virtual INT_PTR DoModal( );

戻り値

ダイアログ ボックスを閉じる CDialog::EndDialog メンバ関数のパラメータ nResult に渡す int 値を返します。ダイアログ ボックスを作成できなかった場合は、戻り値 –1 を返します。それ以外のエラーが発生した場合は、IDABORT を返します。その場合、Output windowGetLastError のエラー情報が含まれます。

解説

このメンバ関数は、ダイアログ ボックスがアクティブの間すべての対話を処理します。これにより、ダイアログ ボックスがモーダルになります。つまり、そのダイアログ ボックスを閉じるまで、ユーザーはほかのウィンドウを操作できません。

[OK]、[キャンセル] などのダイアログ ボックスのプッシュ ボタンをどれかクリックすると、OnOK または OnCancel のようなメッセージ ハンドラ メンバ関数が呼び出され、ダイアログ ボックスが閉じられます。既定の OnOK メンバ関数は、ダイアログ ボックスのデータの妥当性検査と更新をしてダイアログ ボックスを閉じ、IDOK を返します。既定の OnCancel メンバ関数は、ダイアログ ボックスのデータの妥当性検査や更新を行わずに、ダイアログ ボックスを閉じ、IDCANCEL を返します。このメッセージ ハンドラ関数をオーバーライドすると、独自の機能を持たせることができます。

619z63f5.alert_note(ja-jp,VS.90).gifメモ :

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

参照

参照

CDialog クラス

階層図

DialogBox

CWnd::IsDialogMessage

その他の技術情報

CDialog のメンバ