现在又2个CDialog1,CDialog2 都继承CDialog。CDialog2希望继承CDialog1.CDialog1,CDialog2与各自的对话框资源对应。问题:
class CMCUChoose : public CDialog
class CMCUChoose2 : public CMCUChooseCMCUChoose2::CMCUChoose2(CWnd* pParent /*=NULL*/)
: CMCUChoose(CMCUChooseTpye2::IDD, pParent)这样是会报错的??CMCUChoose没有2个参数的重载要如何解决了??

解决方案 »

  1.   

    哎,还是老老实实玩MFC吧,弄清楚MFC那些东西再来搞继承吧。
      

  2.   

    不是本来就没重载吗
    改为:
    CMCUChoose2::CMCUChoose2(CWnd* pParent /*=NULL*/) 
    : CDialog(CMCUChooseTpye2::IDD, pParent) 
    或者:
    CMCUChoose2::CMCUChoose2(CWnd* pParent /*=NULL*/) 
    : CMCUChoose( CWnd* pParent /*=NULL*/) 
      

  3.   

    class CMCUChoose : public CDialog 
    class CMCUChoose2 : public CMCUChoose CMCUChoose2::CMCUChoose2(CWnd* pParent /*=NULL*/) 
    : CMCUChoose(CMCUChooseTpye2::IDD, pParent) 这样是会报错的??CMCUChoose没有2个参数的重载 
    自己加一个构造函数就OK了啊
    如果你非要这么用的话
    CMCUChoose(UINT nID, CWnd* pParent)
      

  4.   

    两个对话框分别有不同的资源,本人不太希望看到这样用。如果两个对话框有一些相同的行为,可以直接提取一个非MFC类的基类。