MDI
视图类继承CView
在视图类中声明了一个变量 CRichEditCtrl m_rich,然后在视图类的OnCreate创建了m_rich对象现在就可以编辑文字了,我的问题是怎么调用m_rich的serialize的方法,在哪儿调用?我试过在文档类中的serialize中调用但是好像不行,帮帮忙,给点提示!
视图类继承CView
在视图类中声明了一个变量 CRichEditCtrl m_rich,然后在视图类的OnCreate创建了m_rich对象现在就可以编辑文字了,我的问题是怎么调用m_rich的serialize的方法,在哪儿调用?我试过在文档类中的serialize中调用但是好像不行,帮帮忙,给点提示!
// 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);
}
}
// 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);
}
}
可参考CRichEditView::Stream函数的实现
参考程序
http://my.6to23.com/cigarette/rs1.zip