关于 MFC 菜鸟问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:49:06
用VC的MFC生成了1个SDI,想实现用菜单上的“打开”实现打开文本文档的功能。并通过OnDraw将打开的文本显示出来。

我在文档类中设了一个CString str,
然后把文本文件里的字符串读入到str里,

void CSaasdDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
ar<<(CString)str;

}
else
{
// TODO: add loading code here
ar>>(CString)str;
}
}

可以编译运行,但是运行后打开文件后,提示“非预期的文件格式”,然后不能显示,各位大侠看看何处有毛病??或者给各范例看看??
我知道错在哪了。想再请教下具体应该如何实现我所说的打开并读入字符串的功能呢?最好能给段原代码看看

概念错误!
序列化是为了方便存贮,减小电脑硬件的读取次数!是为了提高速度!
真正存贮,你还得在// TODO: add storing code here
// TODO: add loading code here
等地方加入文件的打开,读取,存贮代码!
例:
//CArchive在菜单打开保存时的代码
CFile file("1.txt",CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file,CArchive::store);
int i=4;
char ch='a';
float f=1.3f;
CString str("http://www.sunxin.org");
ar<<i<<ch<<f<<str;以上是保存,打开略
==================================
void CSaasdDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring()) //如果缓存状态为存数据.
{
// TODO: add storing code here
ar<<(CString)str; //将str字符串写入的缓存中

}
else
{
// TODO: add loading code here
ar>>(CString)str; //否则,缓存为读状态时,将缓存数据写到字符串变量str中去.
}
}
//补充:文件的缓存,ar,只是内存中为文件开辟的一个暂存空间.是文件与字符串的中间人.
你只是建立了缓存与字符串的联系.
但缓存与文