新建一个对话框工程,以对话框类为基类再生成一个类,然后用子类产生一个对话框可行吗?
 CTestDlg:CDiaglog
{};CDlg2:CTestDlg    //用MFC 增加新类,关联资源ID时不能选CTestDlg为基类。我是新选的CDiaglog,
                   //然后再在工程中改成CTestDlg
{};CDlg2 mydlg;mydlg.DoModal();//走到这边时asseart报错。哪位兄弟指教下为什么这里会报错?

解决方案 »

  1.   

    //然后再在工程中改成CTestDlg
    ===>
    光改个继承类是不行的,还要将消息映射,重写方法中所有用到Cdialog的地方改成CTestDlg
      

  2.   

    可以的,很简单。
    你添加一个类,将基类设为你的CTestDlg。
    然后CDlg2 mydlg;mydlg.DoModal();(注意头文件)。。
      

  3.   

    不要将基类设为CDialog...
    不然你要添加资源和消息映射。。
      

  4.   

    “新选的CDiaglog,然后再在工程中改成CTestDlg”这样不行,你看看作为CDiaglog的子类,CTestDlg都做了什么
      

  5.   

    CTestDlg:CDiaglog
    CDlg2:CDialog -- 》CDlg2:CDialog,把你的CDlg2的头文件的CDialog和cpp文件中的CDialog都改成CTestDlg,特别要注意的是CDlg的构造函数(CDlg2::IDD, pParent),这个要改