mmd,没想到在这个上面出问题,我使用CMyDlg * m_pDlg=new CMyDlg;m_pDlg->Create(IDD_MYDLG);
m_pDlg->ShowWindow(TRUE);怎么老是在创建的时候出错阿,照道理没问题的阿
我改成m_pDlg->Create(IDD_MYDLG,this);
还是要出错,出错显示在dlgcore.cpp的384行出错,谁遇到过这种情况?给说说,谢谢!

解决方案 »

  1.   

    如果m_pDlg是一个局部变量上面的句子没问题,但如果m_pDlg是一个类成员变量就可能会出现重复创建的问题。应该改为:
    if (!m_pDlg)
    {
        m_pDlg = new CMyDlg;
        m_pDlg->Create(IDD_MYDLG);
        m_pDlg->ShowWindow(TRUE);
    }
      

  2.   

    CMyDlg * m_pDlg=new CMyDlg();m_pDlg->Create(IDD_MYDLG);
    m_pDlg->ShowWindow(SW_SHOW);
      

  3.   

    还是不行。对于CMyDlg这个对话框类以及资源的设定有关么?我没做别的阿,这个对话框的风格设定,我设定是popup,以及thin属性,visible上打了勾,别的我没做什么阿。作了这么多,还没遇到过这样的问题,奇怪了
      

  4.   

    可以把原码贴出来或发给我看看吗?
    我的email:[email protected]
      

  5.   

    出错信息是:
    Debug Assertion Failed!Program:E:\MyProjects\MyPro.exe
    File:dlgcore.cpp
    Line:384For information on how your program can cause an assertion failure,see the Visual C++ documentation on asserts.
    别的错误信息没有了,谁给看看,为什么会引起这样的问题?谢谢
      

  6.   

    CMyDlg *m_pDlg;
    放在头文件
    m_pDlg=new CMyDlg;
    上面代码放在构造函数中
    delete m_pDlg;
    上面代码放在析构函数中m_pDlg->Create(CMyDlg::IDD,NULL);
    m_pDlg->ShowWindow(TRUE);建议在对话框关闭时destroy。
    我觉得你的定义位置不对,呵呵
    当函数结束时局部变量要销毁的……
      

  7.   

    提示出什么错?
    我估计你在编译后又改过该对话框的ID,Rebuild all 就可以了。
      

  8.   

    我创建了一个空的,好像没有问题,应该是我在对话框上放了richedit控件的缘故,我在一个空白的对话框上放一个RichEdit后,如果对这个控件没有作任何操作,会有问题。谁知道需要对RichEdit作什么样的操作?
      

  9.   

    我知道我见到过你只要点DIALOG 属性
    去掉 VISIBLE 就行了
    哈哈哈哈哈哈哈哈!!!!!!!!!!!!!!!!!!!!!!!
      

  10.   

    AfxInitRichEdit()放在 CYourApp::InitInstance 中
      

  11.   

    果然是richedit的问题,mmd,忘了这个东西了,哈哈哈哈哈哈哈哈,
    谢谢,hnyyy(前进) ,谢谢你的提醒,我考,我说呢,作了这么多非模态对话框怎么就这样了。哈哈,你不介意我将分分给别的兄弟吧?