VC中怎么添加一个视图类,手动添加一个类时,有选择了继承一个VIEW的类,但是新建的类里面都是空的。 这样使用这个类时会出问题。问题补充:
cx.m_pNewViewClass=RUNTIME_CLASS(CMyView); 
像这里面的CMyView类 是自定义的,手动加一个类 里面是没有内容的,它要怎么自动生成呢。

解决方案 »

  1.   

    自己解决了
    需要在CMyView类中加入
    DECLARE_DYNCREATE(CMyView) IMPLEMENT_DYNCREATE(CMyView, CView)和两个函数
    CMyView* GetDocument() const; 
    void OnDraw(CDC* /*pDC*/);
      

  2.   

    cx.m_pNewViewClass=RUNTIME_CLASS(CMyView);   
    像这里面的CMyView类   是自定义的,手动加一个类   里面是没有内容的,它要怎么自动生成呢。你这个写法只是得到了指向这个类中静态变量 CRUNTIMECLASS(实际上是一个结构体)的指针,要想生成该类实例,必须调用CRUNTIMECLASS结构体的CreateObject的函数来生成CMyView的实例。
      

  3.   

    其实你可以做这些东西的时候,可以先用mfc 的classwizard 创建一个从别的view类派生过来的类,然后改掉派生的类名就可以。
    之所以要做这些,是因为你是在mfc的结构里面使用派生之CView的类,那么你就必须遵循mfc的一些机制,
    如果你是在C++中的话,那就在遵循c++机制的情况下随便你自己怎么用了。