mfc 入门问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 18:27:55
用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;
}
}

可以编译运行,但是运行后打开文件后,提示“非预期的文件格式”,然后不能显示,各位大侠看看何处有毛病??或者给各范例看看??
问题主要是想用文本文档中的字符串给CString赋值

定义一个打开的按钮,对应函数为

void CEeDoc::Onduqu()
{
CStdioFile file;
file.Open("d:\\ts.txt",CFile::modeRead);//注意打开地址

//逐行读取字符串
while( file.ReadString( szLine ) )
{
strText += szLine;
}

//关闭文件

file.Close();}

好像不是很难,娃哈哈哈哈啊哈哈哈哈哈哈哈

其实,程序不用改一个字就能做到.
如下创建:
1.new project比如叫(ViewFile)
2.single document
3.在最终finish前,将CViewFileView的baseclass改为CEditView
4.编译,运行,ok!

void CTextFileDemo2Doc::Serialize(CArchive& ar)
{
if(ar.IsStoring())
{
#ifndef _UNICODE
CTextFileWrite file(ar.GetFile(), CTextFileWrite::ASCII);
#else
CTextFileWrite file(ar.GetFile(), CTextFileWrite::UTF_8);
#endif

CString allText;

((CEditView*)m_viewList.GetHead())->GetWindowText(allText);

file << allText;
}
else
{