CDialog::DoModal

调用该成员函数的调用模式对话框并返回对话框结果,在执行。

virtual INT_PTR DoModal( );

返回值

指定 nResult 参数的值传递给 CDialog::EndDialog 成员函数,用于关闭对话框的 int 值。 返回值为– 1,如果函数不能创建对话框中,或 IDABORT,如果某个其他错误,则为;在 输出窗口 将包含来自 GetLastError情况下的错误信息。

备注

此成员函数处理与用户的所有交互,在对话框处于活动状态时。 正是这使得对话框模式;即用户不能与其他窗口交互的方式,直到对话框关闭的。

如果用户单击其中一个对话框中的普通按钮,例如OK (确定)或cancel,一个消息处理程序成员函数,例如 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