EndDialog(IDOK)之后需要return
2013-04-25 21:59 鉴于 阅读(1159) 评论(0) 编辑 收藏 举报模态对话框常用EndDialog函数来让对话框返回,同时能传递给调用窗体一个返回值,EndDialog是通过调用CWnd的
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"));
}