View请用new的方式,如下所示:
CXXXView * pView; // 成员变量...
pView = new CXXXXView;
pView->Create(...);
pView->....();

解决方案 »

  1.   

    因为CView::PostNcDestroy
    中有delete this;
      

  2.   

    ====
    我没用到这个函数啊。
    这个不用你调用,mfc窗口destroy之后就会自动调用
      

  3.   

    ====
    我没用到这个函数啊。
    这个不用你调用,mfc窗口destroy之后就会自动调用
    ================
    因为这个所以只能用new来创建子窗口吗?
      

  4.   


    =============
    我这样做:
    CMainView mainView;
    在初始化函数中:
    mainView.Create(NULL,NULL,WS_CHILD|WS_VISIBLE,CRect(200,100,m_wndRect.Width()-10,m_wndRect.Height()-10),this,2014);
    mainView.ShowWindow(TRUE);
    关闭函数中用:
    mainView.DestroyWindow();
    这样依然报错,与上面错误一样呢?
      

  5.   

    那就是 
    CMainView mainView; 只能 在 堆中创建。(即 new)
      

  6.   

    是的。当然你也可以在自己的视图类里重写
    virtual void PostNcDestroy( );
    void XXX::PostNcDestroy( )
    {
      CWnd::PostNcDestroy();
    }
    避免CView中的delete this;就可以了。