MDI
视图类继承CView
在视图类中声明了一个变量 CRichEditCtrl m_rich,然后在视图类的OnCreate创建了m_rich对象现在就可以编辑文字了,我的问题是怎么调用m_rich的serialize的方法,在哪儿调用?我试过在文档类中的serialize中调用但是好像不行,帮帮忙,给点提示!

解决方案 »

  1.   

    try this code,
    // MyTranslatorDoc.cpp 
    ...
    void CNWizzardDoc::Serialize(CArchive& ar)
    {
     CRichEditCtrl* pRichEdit = ((CMyTranslatorView*)(this->GetView()))->m_pRich;
     char buffer[MAX_LINE_LENGTH];
     char huge_buffer[HUGE_BUFFER_SIZE];
     CFile *pFile = ar.GetFile(); if (ar.IsStoring())     //file write
     {
      for(int i = 0; i < pRichEdit->GetLineCount(); i++)
      {
       nCharRead = pRichEdit->GetLine(i,buff_in);
       TranslateLine(buffer);
       pFile->Write(buffer, nCharRead);
      }
     }
     else       //file read
     {
      char huge_buffer[HUGE_BUFFER_SIZE]; 
      pFile->Read(huge_buffer,HUGE_BUFFER_SIZE )
      Parse&TranslateLine(huge_buffer,buffer);
      pRichEdit->ReplaceSel(buffer);
     }
    }
      

  2.   

    try this code
    // MyTranslatorDoc.cpp 
    ...
    void CNWizzardDoc::Serialize(CArchive& ar)
    {
     CRichEditCtrl* pRichEdit = ((CMyTranslatorView*)(this->GetView()))->m_pRich;
     char buffer[MAX_LINE_LENGTH];
     char huge_buffer[HUGE_BUFFER_SIZE];
     CFile *pFile = ar.GetFile(); if (ar.IsStoring())     //file write
     {
      for(int i = 0; i < pRichEdit->GetLineCount(); i++)
      {
       nCharRead = pRichEdit->GetLine(i,buff_in);
       TranslateLine(buffer);
       pFile->Write(buffer, nCharRead);
      }
     }
     else       //file read
     {
      char huge_buffer[HUGE_BUFFER_SIZE]; 
      pFile->Read(huge_buffer,HUGE_BUFFER_SIZE )
      Parse&TranslateLine(huge_buffer,buffer);
      pRichEdit->ReplaceSel(buffer);
     }
    }
      

  3.   

    出错提示 :E:\bak\MyCoolBar\MyTestDoc.cpp(59) : error C2039: 'GetView' : is not a member of 'CMyTestDoc'
      

  4.   

    用CRickEditCtrl的StreamIn/StreamOut函数
    可参考CRichEditView::Stream函数的实现
    参考程序
    http://my.6to23.com/cigarette/rs1.zip