为什么theapApp中写的messagebox不会显示?
见了一个基于对话框的MFC程序,整个程序就一个对话框,MFC自动在应用程序的initisal里面生成了
见了一个基于对话框的MFC程序,整个程序就一个对话框,MFC自动在应用程序的initisal里面生成了
1
2
3
4
5
6
7
8
9
|
CmainDlg dlg;
m_pMainWnd = &dlg;
INT_PTR
nResponse = dlg.DoModal();
if
(nResponse == IDOK)
{
// TODO: 在此放置处理何时用
::MessageBox(NULL, _T(
"我是主函数中的messagebox"
), _T(
"提示"
), MB_ICONWARNING);
// “确定”来关闭对话框的代码
}
|
就这个Messagebox是我写的,我想让对话框点击确定后弹一个消息框,但是现在怎么写这个messagebox的参数,这个消息框都弹不出来,为什么会这样?
解释:
原因是这样的, 一般对话框在销毁的时候并不会向应用程序发送WM_QUIT消息退出消息循环, 但是程序【主窗口】(也就是m_pMainWnd所指)在销毁时会发送一个。
所以这里因为前面的对话框是程序主窗口, DoModal结束后应用程序收到WM_QUIT而退出消息循环, 后面的对话框就不会显示了(MessageBox就是一个对话框)。
我也碰到过这个问题:http://bbs.csdn.net/topics/390347681