BOOL CMyApp::InitInstance()
{
......
CWinApp::InitInstance();
AfxEnableControlContainer();
CMyDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO:在此放置处理何时用“确定”来关闭
//对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO:在此放置处理何时用“取消”来关闭
//对话框的代码
}
::MessageBox(NULL,"Hello","test",MB_OK);
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}我试过,MessageBox放在dlg.DoModal()之前,就可显示,
放在之后,就弹不出MessageBox。
不知道为什么。
{
......
CWinApp::InitInstance();
AfxEnableControlContainer();
CMyDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO:在此放置处理何时用“确定”来关闭
//对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO:在此放置处理何时用“取消”来关闭
//对话框的代码
}
::MessageBox(NULL,"Hello","test",MB_OK);
// 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序,
// 而不是启动应用程序的消息泵。
return FALSE;
}我试过,MessageBox放在dlg.DoModal()之前,就可显示,
放在之后,就弹不出MessageBox。
不知道为什么。
{
// TODO:在此放置处理何时用“确定”来关闭
//对话框的代码
}
else if (nResponse == IDCANCEL)
{
// TODO:在此放置处理何时用“取消”来关闭
//对话框的代码
}
是不是在两个todo中都有代码return或者都有跳转到::MessageBox(NULL,"Hello","test",MB_OK);之后的地方,加断点看看。
但为什么会没有窗口呢?
我单步执行过程序,在dlg.Modal返回后,
确实执行了MessageBox函数,
而且我检查了一下返回值,是1。
但为什么就是没有弹出窗口,而只有声音,好像自动按了OK一下的。