CDialog::DoModal方法所返回的值来可以来自EndDialog(int nResult),如
// MyWnd.cpp
#include "MyDialog.h"
void CMyWnd::ShowDialog()
{
CMyDialog myDlg;
int nRet = myDlg.DoModal();
if ( nRet == IDOK || nRet == 5 )
AfxMessageBox("Dialog closed successfully");
}
// MyDialog.cpp
void CMyDialog::OnSomeAction()
{
// Do something
int nRet = 5; // Just any value would do!
EndDialog(nRet); // This value is returned by DoModal!
// Do something
return; // Dialog closed and DoModal returns only here!
}
还可以来自OnOk、OnCancel,所以可以重写OnOk和OnCancel