好像保存文件的部分在文档类的if (isStoring())那里,但是我需要得到View的内容来进行保存,请问怎么做呢?谢谢!

解决方案 »

  1.   

    数据一般都在doc内定义,在view内显示
    比如有一个数据class Data;
    可以在view内通过GetDocument()取得Doc内的数据进行读写
    在Doc内从文件中读写时
    if (ar.IsStoring())
    {
    ar << Data;写
    }
    else
    {
    ar >> Data;读
    }
      

  2.   

    一个文档可以有多个视图,用GetFirstViewPosition获得第一个视图,GetNextView获得下一个视图
    保存文件的时候,在文档类中调用上面的函数获得存放内容的视图,然后就可以读取其内容保存了
      

  3.   

    在DOC中定义一个VIEW类的成员变量,并把VIEW类赋值给它.这样就可以在DOC中用此变量保存了
      

  4.   

    我发现默认没有OnFileSave函数,我在App的cpp文件里面看到有:// 基于文件的标准文档命令
    ON_COMMAND(ID_FILE_NEW, &CWinApp::OnFileNew)
    ON_COMMAND(ID_FILE_OPEN, &CWinApp::OnFileOpen)但是没有Save的宏。我发现有ID_FILE_SAVE这个定义,但是CWinApp并没有OnFileSave函数,所以,该怎么做呢?我现在一旦存盘就会出错,说:
    xxx.exe 中的 0x004132c7 处未处理的异常: 0xC00000FD: Stack overflow请问我该怎么做?谢谢!
      

  5.   

    已经有了,添点代码就可以了
    CMyDoc::Serialize(CArchive& ar)
    {
    if (ar.IsStoring())
    {
    // TODO:  在这增加保存代码
    }
    else
    {
    // TODO: 在这增加打开代码
    }
    }