CView(及派生类)都是用于Doc-View结构中的,一般来说是不能直接创建的。
如下,是编译不通过的:
class A : public CWnd
{
CView m_view;//........
}现在我需要使用到CHtmlView类(或其派生类),但我不想用Doc-View结构,我就只想在CWnd的派生类的窗口对象中建一个view对象,有没有办法?请高手指点?
我自己试过,即使把派生类的构造、析构改为public,但对象在析构的时候会有异常,因此这个办法是不行的。

解决方案 »

  1.   

    文档/视结构中CView为动态DECLARE_DYNCREATE创建,非...中CView通过Create创建建议将你的View中
    DECLARE_DYNCREATE(CMyView)

    IMPLEMENT_DYNCREATE(CMyView, CView)
    删除掉再试
      

  2.   

    呵呵,我自己搞定了。重载OnDestroy(),改为CWnd::OnDestroy(),同时,重载PostNcDestroy(),里面不做任何事情,就可以欺骗MFC作为一个正常控件使用了。当然,那些DYNCREATE的宏还是去掉比较好
      

  3.   

    晕,CSDN烂网络,结到一半出错了。我的50分……呜呜