我想在主对话框上建立子对话框,并通消息 请问下面那一个是对的CDialog *dlg=new CSetupDlg; //CSetupDlg弹出对话框的类  
dlg->Create(IDD_DIALOG1,NULL);
dlg->ShowWindow(SW_SHOW);
CDialog *dlg=new  CDialog; //CSetupDlg弹出对话框的类
dlg->Create(IDD_DIALOG1,NULL);
dlg->ShowWindow(SW_SHOW);从CDialog   继承一新的类MyDialog也就是这个对话框类 MyDialog*   pDlg   =   new   MyDialog();         //   Application   memory   room 
pDlg-> Create(ID_MYDIALOG,this);           //   Load   dialog   from   resource 
pDlg-> ShowWindow(SW_SHOW);         //   Show   the   window 他们不同之处在与 new 之后是谁的类

解决方案 »

  1.   

    既然是对话框,一般都是从CDialog派生过来的。
      

  2.   

    第一个:
    CDialog *dlg=new CSetupDlg; -> CSetupDlg *dlg=new CSetupDlg;
    第三个:
    pDlg-> Create(ID_MYDIALOG,this);  
    -> pDlg-> Create(ID_MYDIALOG,NULL);  
      

  3.   

    标准的用法是第三个对。
    第一个:CDialog *dlg=new CSetupDlg;这样当然也能成功,但是如果你的CSetupDlg类中定义有自定义的成员,那么指针dlg是访问不到它们的。
    第二个:CDialog *dlg=new CDialog; //CSetupDlg弹出对话框的类
    你建立的并不是CSetupDlg类的对话框,而是CDialog类的对话框
      

  4.   

    一般非模态对话框的成员应该保存在类里,否则MyDialog* pDlg = new MyDialog(); 当这个创建函数推出后,你如何释放这个new出的对话框?
      

  5.   

    请问第三种正确的做法是什么啊   我的程序总报错 我检查没有这样错误
    F:\学习\新建文件夹 (2)\test\testDlg.cpp(179) : error C2143: syntax error : missing ';' before '}'
      

  6.   

    testDlg.cpp(179) 这行代码和附近代码。
      

  7.   


    pDlg-> Create(ID_MYDIALOG,this); // Load dialog from resource  
    使用This做为pParentWnd ,自己做自己的父亲?
      

  8.   

    pDlg-> Create(ID_MYDIALOG,this); // Load dialog from resource   
    使用This做为pParentWnd ,自己做自己的父亲?
    ===========
    这样是对的,也不是自己做自己的父窗口,是当前调用这句话的窗口做pDlg的父亲。
      

  9.   

    个人感觉,第三种更符合实际的应用。
    是ID_MYDIALOG还是IDD_MYDIALOG?
    你创建了IDD_MYDIALOG对话框后,在上面右键添加类,添加的类名字就是MyDialog吧?
    那就不会错了。
    用的时候别忘记include一下类的头文件。
      

  10.   

     是IDD_MYDIALOG  对 我添加了Dialog后,就为这个对话框关联类了 然后就是下面程序 而且头文件也加了
    MyDialog* pDlg = new MyDialog(); // Application memory room  
    pDlg-> Create(ID_MYDIALOG,this); // Load dialog from resource  
    pDlg-> ShowWindow(SW_SHOW); // Show the window  报了一大堆错 说 MyDialog没有这个类
    还有十几条说   F:\新建文件夹 (2)\test\testDlg.cpp(179) : error C2143: syntax error : missing ';' before '}'
     
    x现在都不知哪错了