部分代码如下:
#include "NoticeDlg.h"
void CEvent_Notice::Start()
{
CNoticeDlg* pNewNoticeDlg=new CNoticeDlg();
pNewNoticeDlg->Create(IDD_DIALOG_NOTICE);
pNewNoticeDlg->ShowWindow(SW_SHOW);
}调试时在跟进ShowWindow()函数后,发现调用基类ShowWindow()之后对话框立即消失了。
各位高手,请教一下!

解决方案 »

  1.   

    static CNoticeDlg* pNewNoticeDlg=new CNoticeDlg();
      

  2.   

    你这里的代码看不出问题,要看你的CNoticeDlg类中写了些什么
      

  3.   


    嗯 我试过了,还是不行哦。
    我调试过了,pNewNoticeDlg指针并没有被销毁,指向的对话框也是存在的。
    应该不是这方面原因。
      

  4.   


    嗯,对话框类应该没有问题,因为如果用其他对话框类来调用这三段代码就不会出现问题。
    但是我自己写的CEvent_Notice类Start()函数调用就会出现上述情况。
    发现只要在Start函数结束后,窗口才会消失,百思不得其解。。
      

  5.   

    嗯 我想问下大家,如果在自己写的一个非界面类中new一个新的对话框该如何写代码?CNoticeDlg* pNewNoticeDlg=new CNoticeDlg();
    pNewNoticeDlg->Create(IDD_DIALOG_NOTICE);
    pNewNoticeDlg->ShowWindow(SW_SHOWNORMAL);第二行代码的参数是不是不正确呢?
      

  6.   


    试试
    .h
    CNoticeDlg m_NewNoticeDlg;.cpp
    m_NewNoticeDlg.Create(IDD, this);
    m_NewNoticeDlg.ShowWindow(SW_SHOW);
    return;
      

  7.   


        CDialog dlg; //这个写到CEvent_Notice类成员里面
     dlg.Create(IDD_DIALOG_NOTICE); 
    dlg.ShowWindow(SW_NORMAL);消失是因为作用域问题 执行到ShowWindow后就销毁了