Share via


CDialog::DoModal

呼叫此成員函式叫用的強制回應對話方塊並傳回對話方塊結果,完成。

virtual INT_PTR DoModal( );

傳回值

指定 nResult 參數的值傳遞至 CDialog::EndDialog 成員函式,以關閉 對話方塊的 int 值。 傳回值為 1,如果函式無法建立對話方塊,或 IDABORT ,如果其他錯誤,在這種情況下, 輸出視窗 將包含 GetLastError的錯誤訊息。

備註

在 對話方塊中為作用中時,此成員函式處理與具有相同使用者的所有互動。 這正是啟用對話方塊的強制回應,也就是使用者無法與其他視窗的互動,直到關閉對話方塊。

如果使用者按一下其中一個 對話方塊中的按鈕,例如判斷或取消,訊息處理常式成員函式,例如 OnOKOnCancel,呼叫嘗試關閉對話方塊。 預設 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;
   };
}

需求

Header: afxwin.h

請參閱

參考

CDialog 類別

階層架構圖表

DialogBox

CWnd::IsDialogMessage