MFC默认框架(基于对话框)下的代码,在下面的代码之后 CXXXDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
;
else if (nResponse == IDCANCEL)
;再放一个dlg的话,比如 CMyDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
则新的Dlg将不能做消息循环,在这句话后直接退出:wincore.cpp--->CWnd::RunModalLoop--->PeekMessage(pMsg, NULL, NULL, NULL, PM_NOREMOVE)
是不是在创建这个dlg之前缺少发送某一个消息?
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
if (nResponse == IDOK)
;
else if (nResponse == IDCANCEL)
;再放一个dlg的话,比如 CMyDlg dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
则新的Dlg将不能做消息循环,在这句话后直接退出:wincore.cpp--->CWnd::RunModalLoop--->PeekMessage(pMsg, NULL, NULL, NULL, PM_NOREMOVE)
是不是在创建这个dlg之前缺少发送某一个消息?
解决方案 »
- 打印的问题
- 关于内存读取错误
- CAsyncocket的error C2146: syntax error : missing ';' before identifier '
- winsock 多播的问题。
- 如何设置combobox中的edit的宽度大小
- CListView显示不出数据
- Install shieldx 中如何将 install welcome dialog 和其他Dialog 替换成自己设计的形式?
- 创建了一个基于FormView的单文档类,想在视图中插入图片,该怎么处理?
- 菜鸟提问,请高手指教
- 图像处理
- [求助]mfc dll 中创建线程,线程为何不能正常退出?
- CTreeCtrl的SetExtendedStyle如何在非unicode字符集下调用?
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
MSG pMsg = {0};
while(PeekMessage(&pMsg, NULL, NULL, NULL, PM_REMOVE));
CYYYDlg dlg2;
m_pMainWnd = &dlg2;
INT_PTR nResponse2 = dlg2.DoModal();
如果第一个对话框不是主对话框不用m_pMainWnd = &dlg;