我从CDialog派生了子类CMyBaseDlg,
现在想从CMyBaseDlg派生对话框CMyDlg。
class CMyDlg: public CMyBaseDlg编辑提示illegal member initialization: 'CDialog' is not a base or member
好像是下面出了问题:
CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMyDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgAddress)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT}

解决方案 »

  1.   

    CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
    : CMyBaseDlg(/*CMyDlg::IDD,*/ pParent)
    {
    //{{AFX_DATA_INIT(CMyDlg)
    // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT}
      

  2.   

    CMyDlg::IDD 看你的CMyBaseDlg构造是否为
    CMyBaseDlg( UINT nResID, CWnd* pParent )
      

  3.   

    不是,CMyBaseDlg和CMyDlg
    都是用MFC自动生成的,只是改了CMyDlg的基类为CMyBaseDlg
    CMyBaseDlg::CMyBaseDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CMyBaseDlg::IDD, pParent)
    {
    //{{AFX_DATA_INIT(CDlgBase)
    // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT
    }
    CMyDlg::CMyDlg(CWnd* pParent /*=NULL*/)
    : CDialog(CMyDlg::IDD, pParent)
    {
    //{{AFX_DATA_INIT(CDlgAddress)
    // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT}
    怎么改啊??
      

  4.   

    可以了,我加了一个CMyBaseDlg( UINT nResID, CWnd* pParent )构造函数。
    谢谢 : modena(非云)!1