MFC的怎么进行文件保存

如图的程序,想添加文件保存和读取、新建的功能(就和word一样的保存和打开)。现在的问题是我按了保存以后,保存的没有扩展名(如图),保存的文件也无法再打开,请问该怎么做?... 如图的程序,想添加文件保存和读取、新建的功能(就和word一样的保存和打开)。现在的问题是我按了保存以后,保存的没有扩展名(如图),保存的文件也无法再打开,请问该怎么做?
我现在还没有进行保存和读取的编程,但按下保存以后就可以出现上面的图片,但是保存的文件无效。我不知道该怎么编程,急求大神指导,财富可以添加!!
展开
 我来答
出家人词悲
高赞答主

推荐于2016-11-06 · 大脑停止不了思考
知道大有可为答主
回答量:1.4万
采纳率:12%
帮助的人:3931万
展开全部

用CFile,CArchive等都可以保存, 做一个按钮保存,另一个装入,即可。

或者在对话框退出时自动保存,在初始化时自动装入。 无需按行保存,就用一个变量即可

例如:对话框开启时写:
BOOL CTest1Dlg::OnInitDialog()
{

//系统自动产生的代码省略。。。

   // TODO: Add extra initialization here

CFile mFile;
     
      if(mFile.Open("user.txt",CFile::modeRead))
      {
     CArchive ar(&mFile,CArchive::load);
     ar>>m_Name>>m_Age;
     ar.Close();
      UpdateData(FALSE);
      }

return TRUE;  
}

退出时:
void CTest1Dlg::OnExit()
{
   // TODO: Add your control notification handler code here

CFile mFile;
     
if(mFile.Open("user.txt",CFile::modeWrite|CFile::modeCreate))
      {
     CArchive ar(&mFile,CArchive::store);
     UpdateData(TRUE);
     ar<<m_Name<<m_Age;
     ar.Close();
         }
   this->OnOK();
}

补充:微软基础类库(英语:Microsoft Foundation Classes,简称MFC)是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。

bhtzu
推荐于2017-12-16 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4197万
展开全部

你现在这个,是因为使用了MFC标准文档视图框架,在没有自定义的情况下,默认调用了基类的CDocument::OnFileSave()

不自定义,使用默认保存处理,是可以实现文件保存的。

  1. 在字符串资源中设置文档默认扩展名可以完成“保存类型”的设置

  2. 将要保存的内容完整的序列化到文档类的Serialize中(如果要保存图片,那么需要文件的完整格式进行序列化)

简单的说,在Doc类中重写Serialize成员函数。在函数中对你要保存的对象序列化。

完成之后,点击菜单栏上的保存和打开就可以实现序列化了。

更多追问追答
追问
请问一下:
1、怎么设置扩展名?字符串资源在哪设置?
2、序列化是怎么回事?
3、使用默认保存方便还是自定义保存方便?

不好意思,MFC的保存功能没学过,也找不到相关资料,求指导,谢谢!
追答

呵呵,序列化保存文档,是每一本MFC书中必讲的内容。


  1. 设置扩展名,修改文档模板字符串即可,一般是IDR_xxxxTYPE,搜“文档模板字符串”可以找到相关资料,一般是第三个和第四个\n后面加“图片(*.bmp)”这样的东西。

  2. 序列化资料很多,自己搜,几句话说不明白,你只要记住,你要保存的东西放到文档类的CSerialize中,保存就自动保存了。

  3. 自己写保存也很方便(当然是你熟悉的情况下,呵呵)不过默认保存做的很严谨,这个学习一下有好处,对比来说,肯定使用默认保存代码少,毕竟MFC已经完成了大量的工作。

一个序列化的例子:

http://wenku.baidu.com/view/e2a69d966bec0975f465e2ed.html

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
502603110
2013-05-25 · 超过24用户采纳过TA的回答
知道答主
回答量:105
采纳率:0%
帮助的人:55.4万
展开全部
修改字串资源。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式