CDialog::EndDialog

调用此成员函数终止一个模式对话框。

void EndDialog(
   int nResult 
);

参数

  • nResult
    包含从对话框中返回的值相加 DoModal的调用方。

备注

此成员函数返回 nResult,DoModal的返回值。必须使用 EndDialog 功能完成处理,只要有模式对话框创建。

可以在+任何+时间调用 EndDialog,即使在 OnInitDialog,则应关闭对话框情况下,在显示之前,或者在输入焦点设置之前。

EndDialog 不立即关闭对话框。相反,它将处理对话框关闭的标志,在当前消息处理程序返回。

示例

void CMyDialog::OnMenuShowSimpleModal()
{
   CSimpleDlg myDlg;
   INT_PTR nRet = myDlg.DoModal();

   if (nRet == IDOK || nRet == 5)
      AfxMessageBox(_T("Dialog closed successfully"));
}
void CSimpleDlg::OnRButtonUp(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);
   // Do something

   int nRet = point.x; // Just any value would do!
   EndDialog(nRet); // This value is returned by DoModal!

   // Do something

   return; // Dialog closed and DoModal returns only here!
}

要求

Header: afxwin.h

请参见

参考

CDialog选件类

层次结构图

CDialog::DoModal

CDialog::OnOK

CDialog::OnCancel