对话框分为两种,模式的 和 非模式
在mfc中,调用模式对话框的方法如下:
    CTestDlg dlg;
    dlg.DoModal();
请问, 非模式对话框 如何调用?
    CTestDlg dlg;
    dlg.??();

解决方案 »

  1.   

    dlg.Create(IDD_YOURDIALOG,this);
    即可,其中IDD_YOURDIALOG就是你的对话框资源名
      

  2.   

    非模式。
    CTestDlg *pdlg;
    pdlg = new CTestDlg;
    pdlg->Create(CTestDlg::IDD,this);
    pdlg->ShowWindow(SHOW_WINDOW);......pdlg->DestroyWindow();
    delete pdlg;
    pdlg = NULL;
      

  3.   

    CMyDlg::OnButton1()
    {
    CModelessDlg *m_pModelessDlg;
    m_pModelessDlg = new CModelessDlg(this);
    m_pModelessDlg->Create( CModelessDlg::IDD, GetDesktopWindow() );
    m_pModelessDlg->ShowWindow(SW_SHOW);
    }CMyDlg::~CMyDlg()
    {
      delete m_pModelessDlg;
      m_pModelessDlg = NULL;
    }
    void CModelessDlg::PostNcDestroy()
    {
       delete this;
    }
      

  4.   

    要先new出来,然后creat再用showwindow来显示
      

  5.   

    大家回答的都对,可是我只有三分,就给写的详细的人吧!
    顺便在问问,小三,这种办法是否在 modelessdlg执行完成onok按钮后,自动地调用PostNcDestroy()函数呢?还是,需要手动调用?是否产生内存泄漏?