EndModalLoop(int nResult)来通知窗体返回的。在void CWnd::EndModalLoop(int nResult)函数中会发送一个异步消息PostMessage(WM_NULL),也就是说EndDialog是异步的,所以如果在类似下面的代码中使用EndDialog,需要调用return,确保EndDialog之后的代码不会被执行
void CkDlg::OnBnClickedCancel()
{
BOOL isSuccess = true;
if (isSuccess)
{
EndDialog(IDCANCEL);
return;
}
MessageBox(_T("Test"));
}