MFC中,可以有几个对话框?我在主对话框之外加了一个对话框a后没有问题。然后又加了一个对话框b,步骤和上一个一样,然后就出错。编译,链接都没有错,但执行时就出错了,好像是非法操作。为什么?将那个include b.h屏蔽掉也不行。

解决方案 »

  1.   

    窗口数量和MFC无关,和系统资源有关。
      

  2.   

    只受系统资源限制.程序,编译器都不会限制你开对话框的个数.
    看一下具体出错信息.
    还有是你怎么调用这个对话框的.不要没Create就Show.
      

  3.   

    我根本就还没有调用这个对话框呢。只是插入了一个对话框,新建了一个类,继承的基类是CDialog.然后运行主程序,就出错了

    资源如何释放呢?是要释放a对话框吗?
      

  4.   

    if (hWndCtrl == NULL)
    {
    TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
    [color=#FF6600]ASSERT(FALSE);      //debug错误指在这里
    AfxThrowNotSupportedException();
            }
    我看不懂什么意思
      

  5.   

    是不是你新建的类的Dialog ID不正确
    本来应该是B,而实际指向了A
    刚才照你说的我新建了一个
    没有问题
      

  6.   

    刚才删掉那个对话框,重新插入一个新的对话框FIGDLG.加了两个单选按钮,保留了原来的ok,cancel按钮。然后classwizad创建新类,基类为CDIALOG.然后将对应头文件Figdlg.h包含到主文件mydlg.cpp中。结果还是错了,和刚才一样。
    以上步骤有问题吗?
      

  7.   

    assert()中的条件为假就会出非法操作的对话框 
      

  8.   

    DEBUG停在那,说明你的对话框窗口句柄是空的,也就是你的对话框没创建出来呀,你看下对话框创建的过程对着不