void CMy2Doc::OnEditClearAll() //(.cpp)
{
  // TODO: Add your command handler code here
  DeleteContents();
  UpdateAllViews(NULL);
}
就够了吧!!  SetModifiedFlag();  是?

解决方案 »

  1.   

    去掉SetModifiedFlag(); 也不行呀,这个是我从《深入浅出MFC》中看来的,我为什么不起作用呢?
      

  2.   

    DeleteContents()和UpdateAllViews()的头文件是afxwin.h,那函数的定义文件是什么?
      

  3.   

    我改为
    void CMy2Doc::OnEditClearAll() 
    {
    // TODO: Add your command handler code here
    DeleteContents();
    SetModifiedFlag();
    UpdateAllViews(NULL);
    AfxMessageBox("go");

    }可以弹出一个对话框,但是为什么不能清除文档的内容呢?该如果更改?
      

  4.   

    DeleteContents();
    是一个虚函数,需要你重载去实现你的工作!
      

  5.   

    我把该函数写为
    void CMy2Doc::DeleteContents()
    {
    while (!m_strokeList.IsEmpty())
    {
    delete m_strokeList.RemoveHead();
    }
    CDocument::DeleteContents();
    }
    在.h中添加了CTypedPtrList<CObList,???>     m_strokeList;
    我把???改为CMy2Doc不起什么作用,应该怎么改才可以用?
      

  6.   

    DeleteContents()的delete应该删除一个文档指针,这个文档指针是不是serialize读写文档产生的指针,请问这个指针是什么?