我现在的程序是基于多文档视图的,文件保存的方式采用序列化保存的方式,自己专门写了一个用于序列化保存的类,没有用Document中的Serialize函数。打开文件和保存文件以前都是采用的默认的方式,我没有进行重载。现在我想重载这些函数,不知道把这些函数写在那个类中比较合理?在Doc中,Frame中还是View中呢?哪个更合理一些。还有采用默认的打开方式时,打开一个文件我如何获得这个文件的句柄(指针)啊?如果在重载了保存函数时,如何来确定是否需要弹出保存文件的对话框?因为保存时会有两种情况产生:1、当新建一个文件后需要保存时 2、当打开一个文件修改后需要保存时,在第一种情况下是需要弹出一个保存的对话框让用户选择路径和文件名进行保存,而在第二种情况下是直接保存在打开的文件中。是不是在默认情况下时程序自己维护着一个文件路径,那又如何获得这个文件路径?如果自己重载保存这个函数,大家一般又是如何处理这两种情况呢?还有一个问题就是在资源管理器中双击一个文件,启动相应的程序并打开这个文件,这个时候程序中又是那个函数进行了响应?如何得到这个文件的句柄和路径?还有拖放的时候,程序又是如何处理的?
问题比较多,主要是我对MFC的这套流程不熟悉,望大家给耐心的讲一下,想必有很多人也是喜欢听的。谢谢!
问题比较多,主要是我对MFC的这套流程不熟悉,望大家给耐心的讲一下,想必有很多人也是喜欢听的。谢谢!
对于稳定操作一般是在doc中,
保存的路径一般是程序所在的路径,如果楼主想把最近打开的文件路径存在注册表或者ini文件中也可以,程序启动的时候再装入.
至于文件关联,双击打开,我不是很清楚,没有做过,可能要添加一个什么东西到注册表中吧,至于双击后,肯定是Doc类的打开函数了
拖放文件就是Doc类的open函数,在MDI中很容易,
// Allow user drag files, add this code in CMainFrame::OnCreate()
DragAcceptFiles();
就可以了,
你随便填二三个字母。然后自己就可以看见了。有.reg文件。就是文件件中关系的东西。