我用分割窗口创建了一个CEditView的视图,创建没有问题,当我在CEditView视图中写字时,
就异常了。
报的错误是:BOOL CEditView::OnEditChange()
{
ASSERT_VALID(this);
GetDocument()->SetModifiedFlag();
ASSERT_VALID(this); return FALSE;   // continue routing
}Debug告诉这里出错,就是"GetDocument()->SetModifiedFlag();"
第一次操作视图这个,请教原因及如何解决。

解决方案 »

  1.   

    你没有给它绑定文档。分割窗口创建视图的时候有个CCreateContext结构参数,可以指定文档类。
      

  2.   

    我的创建代码:BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
    {        //右侧聊天列表
             m_wndSpliter.CreateStatic( this, 1, 2);
            m_wndSpliter.CreateView( 0,1, RUNTIME_CLASS( UserListView) ,CSize(0,0), pContext );
    m_wndSpliter.SetColumnInfo( 0, 800, 50 );        //左侧聊天窗口和消息编辑窗口
             m_wndSpliter2.CreateStatic( &m_wndSpliter, 2, 1, WS_CHILD | WS_VISIBLE , m_wndSpliter.IdFromRowCol(0,0));
            m_wndSpliter2.CreateView( 0,0, RUNTIME_CLASS( MsgCommWnd), CSize(0,0), pContext );
            m_wndSpliter2.CreateView( 1,0, RUNTIME_CLASS( MsgEditWnd), CSize(0,0), pContext );
            m_wndSpliter2.SetRowInfo( 0, 300, 50 );        //聊天显示窗口属性不可编辑
             MsgCommWnd*  pEditWnd = (MsgCommWnd*)getChatMainWnd();
            pEditWnd->GetEditCtrl().SetReadOnly( TRUE ); return TRUE;
    }
    类MsgEditWnd继承于CEditView, 窗口显示都没有问题,可是写个字符,就挂掉了。"你没有给它绑定文档。分割窗口创建视图的时候有个CCreateContext结构参数,可以指定文档类。"
    请教下如何指定 ?
      

  3.   

    你看看pContext参数的成员是什么,MFC框架的话应该已经正确赋值了,你是什么框架?是否有C...Doc类?
      

  4.   

    谢谢了,解决了。
    我在EditView那个视图类里面给他绑定了一个文档类对象,就OK了。