用MFC创建了一个工程,创建了一个视图类class CLly1View : public CView,并且里面的函数都添加完成,且应用在整个工程中了。现在需要class CLly1View继承 public CFormView。请问,能不能在不新建工程的情况下,只把class CLly1View继承的类名改为CFormView,添加一些与CFormView相关的函数然后再相应的地方做一更改?

解决方案 »

  1.   

    class CLly1View : public CView改为class CLly1View : public CFormView
      

  2.   

    D:\lly\lly\lly1\lly1View.cpp(37) : error C2039: 'IDD' : is not a member of 'CLly1View'
      

  3.   


    貌似不止这样吧,你需要将.h和.cpp两个文件里面所有的CView改为CFormView,编辑/替换很容易就实现了
      

  4.   

    不能直接改的 你新建个FORMVIEW的工程 比较下看看就知道了
      

  5.   


    刚试过了,确实不能直接改。
    这个错误就是因为你直接改导致的,因为CFormView需要对话框资源,你CView不需要的
      

  6.   

    不用新建工程啊
    另外还需在.cpp中把两处的CView改为CFormView:
    1.CXXX::CXXX(CWnd* pParent /*=NULL*/)
    CView(CXXX::IDD, pParent)//此处改动
    {
    //{{AFX_DATA_INIT(CXXX)
    // NOTE: the ClassWizard will add member initialization here
    //}}AFX_DATA_INIT
    }
    2,BEGIN_MESSAGE_MAP(CXXX, CView)//此处改动
    //{{AFX_MSG_MAP(CXXX)
    ON_BN_CLICKED(IDC_BTN_CLEAR, OnBtnClear)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
      

  7.   

    CFormView需要对话框模板ID,在构造函数中为基类提供对话框模板ID,消息映射表修改基类名