Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在基于对话框的VC++;应用_C++_Visual C++_Mfc - Fatal编程技术网

C++ 在基于对话框的VC++;应用

C++ 在基于对话框的VC++;应用,c++,visual-c++,mfc,C++,Visual C++,Mfc,我是VC++编程的初学者,在开发基于对话框的VC++应用程序(VS2010+WIN7)时遇到了一个问题。非常感谢任何帮助或建议 我创建了两个对话框类,CTestDialog和CMyDialog。CTestDialog是应用程序运行时显示的对话框。单击“确定”按钮时,我想显示另一个对话框,即CMyDialog两次。代码如下: void CTestDialog::OnBnClickedOk() { CDialog::OnOK(); CMyDialog dlg1; dlg1.DoModal(

我是VC++编程的初学者,在开发基于对话框的VC++应用程序(VS2010+WIN7)时遇到了一个问题。非常感谢任何帮助或建议

我创建了两个对话框类,CTestDialog和CMyDialog。CTestDialog是应用程序运行时显示的对话框。单击“确定”按钮时,我想显示另一个对话框,即CMyDialog两次。代码如下:

void CTestDialog::OnBnClickedOk()

{

CDialog::OnOK(); 

CMyDialog dlg1;

dlg1.DoModal();

MessageBox("Show me again!");

CMyDialog dlg2;

dlg2.DoModal();

}
第一个对话框dlg1显示正确,但第二个对话框dlg2不工作。VS告诉我的

“调试断言失败! 文件:f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\wingdi.cpp行:1119“


谁能解决这个问题?非常感谢你

对于Windows应用程序,您不能同时弹出两个模式对话框,这就是为什么您获得了第二个域的断言。

您是否
#包括“CMyDialog.h”
?如果查看生成断言的代码,它应该给你一个提示。可能你正在
CMyDialog
中创建/销毁一些窗口句柄,但没有正确清理。试着把每一组放在括号中{
CMyDlg x;x.DoModal();}
或者给我们看看
CMyDialog中的内容
请格式化你的代码。只要第二组是第一组的孩子,你就可以做得很好。非常感谢马特和@MarkRansom的评论。我的计划是做心理实验。人们会看到一幅画,做出选择,然后看到另一幅画,做出选择,等等。这就是为什么我想显示两次(或两次以上)CMyDialog。我只想让CMyDialog成为一个界面,当人们每次点击“OK”按钮时,它都会显示不同的图片。我可以创建对话框来显示每张图片,但这种方式太笨拙了。如果您知道实现这一点的任何方法,我们将不胜感激!大家好,我刚刚用一个基于文档的应用程序替换了基于对话框的应用程序,问题就解决了。无论如何,非常感谢你的帮助。