如何调用mfc向导生成的基于doc/view结构的默认文件读写过程 就是在用向导生成程序时,菜单中的保存、另存为、打开等等已经建立了实际的操作方法,我在别的地方需读写文件,但又不想重新写读写方法,想直接利用向导生成的方法,能不能实现?能的话请说明方法,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试发送消息给doc,触发保存. 向导只能给你创建一个文件,并不能帮你把内容给填上(除非某些特定的工程)。最终还是得自己写一个函数。调用的话,CView里可以用GetDocument()来获得文档对象的指针。其它地方也可以通过CView来代理调用。 不知道你具体要做什么,参考一下文档类的Serialize函数。 怎么触发啊,找不到doc的触发条件,唯一和文件有关联的就是void CtestsplitterDoc::Serialize(CArchive& ar)函数,可在别处调用p->Serialize(CArchive& ar);或者CArchive ar;p->Serialize(CArchive& ar);都不合法。p是文档指针。 就是在菜单栏上再加个按钮,实现和向导生成的保存按钮一样的功能,有没有办法直接调用而不用重写什么onsave. to 2楼:这个我知道,但通过向导只要在Serialize简单添加几个句子就行了,但是我还想在别的地方调用,不知道该怎么办 试试这样pDoc->OnSaveDocument("test.txt");//OnSaveDocument为doc的虚函数,点击保存按钮时也会调用此函数或者pWnd->SendMessage(WM_COMMAND, ID_FILE_SAVE, 0);//pWnd为doc相关联的view或frame 如果只是这样,你把按钮的ID设置为ID_FILE_SAVE不就行了。如果直接调储存函数,可以调用文档类的DoFileSave。 你是要读写当前active的view里的文件吗?如果这样的话,那直接调用OnFileOpen函数就是了。调用AfxGetApp()获取CWinApp的指针,然后调用pWinApp->OnFileOpen()就可以了。但是这样会同时更新View中的显示。如果你不想更新View的话就只能自己写函数了,调用CStudioFile挺容易的。 就是在菜单栏上再加个按钮,实现和向导生成的保存按钮一样的功能,有没有办法直接调用而不用重写什么onsave.CDocument::SaveModified 通过消息发送不行吗。妳在编写读写函数的时候,设置setmessage,在view中进行触发 最简单的方法还是像cnzdgs说的,把你的按钮的ID直接设成ID_FILE_SAVE,这样就能实现和File->Save菜单相同定额动作。也可以把你的按钮的函数映射到CMyDocument类中,这样就可以直接调用OnFileSave了,因为这个函数是protect的,所以外面不能调用。 7,8楼正解。谢过!因为还要实现别的功能,所以不能设相同id,只能用DoFileSave或SendMessage(WM_COMMAND, ID_FILE_SAVE, 0); 为什么装VC6.0少MFC和Cpp文件 如何实现类似tab的菜单 注册表 %1 float值转化为byte的问题(dll函数中) 请大家解释一下,一个提错信息,(我是新手) 怎样在主框架出现之前弹出一个对话框? 如何做一美观的标尺,望高手给一点建议啦! 为什么我的程序中不能用全局函数::AnimateWindow? 菜鸟问题(REALEASE)??? 一个关于滚动条的问题 (急)如何将一个表中的数据添加到另一个表的后面(两个表字段一样) C/S同机测试正常,局域网内两台机器测试时失败???
p->Serialize(CArchive& ar);
或者
CArchive ar;
p->Serialize(CArchive& ar);
都不合法。p是文档指针。
pDoc->OnSaveDocument("test.txt");//OnSaveDocument为doc的虚函数,点击保存按钮时也会调用此函数或者
pWnd->SendMessage(WM_COMMAND, ID_FILE_SAVE, 0);//pWnd为doc相关联的view或frame
如果直接调储存函数,可以调用文档类的DoFileSave。
CDocument::SaveModified