文档新建、打开及关闭的过程

应用程序类的InitInstance()函数在调用了AddDocTemplate()函数之后,会通过CWinApp::ProcessShellCommand间接调用
CWinApp的OnFileNew,并依次完成下列工作:
(1)构造文档对象,从磁盘中读取数据。
(2)构造主框架类CMainFrame类的对象,并创建该主框架窗口,但不显示。
(3)构造视图对象,并创建视图窗口,同样也不显示。
(4)通过MFC内部机制,建立主框架窗口、文档和视图对象之间的联系。
(5)调用CDocument::OnNewDocument()虚函数,并调用CDocument::DeleteContents()虚函数来清除文档对象的内容。
(6)调用CView::OnInitialUpdate()虚函数初始化视图类的数据成员。
(7)调用CFrameWnd::ActiveFrame()虚函数,显示带有菜单、工具栏、状态栏以及视图窗口的主框架窗口。

打开文档
在利用MFC应用程序向导创建应用程序时,MFC会自动将“文件”菜单中的“打开”命令映射到CWinApp类的OnFileOpen()成员函数。OnFileOpen()函数会完成下列操作:
(1)弹出通用文件“打开”对话框,供用户选择一个文档。
(2)文档指定后,调用文档对象的CDoucment::OnOpenDocument()虚函数。这个函数将打开文档,并调用DeleteContents()函数清除文档对象的内容,然后创建一个CArchive对象用于数据的读取,接着又自动调用Serialize()函数。
(3)调用视图对象的CView::OnInitialUpdate()虚函数初始化视图类的数据成员。

保存文档
在利用MFC应用程序向导创建应用程序时,它会自动将“文件”菜单中的“保存”命令与文档类的OnFileSave成员函数在内部关联。OnFileSave()函数会完成下列操作:
(1)弹出通用文件“保存”对话框,让用户输入一个文件名。
(2)调用文档类对象的CDocument::OnSaveDocument()虚函数,接着又自动调用Serialize()函数,将CArchive对象的内容保存在文档中。

关闭文档
当用户试图关闭文档(或退出应用程序)时,应用程序会根据用户对文档的修改与否来进一步完成下列任务。
(1)若文档内容已修改,则弹出一个“消息”对话框,询问用户是否保存修改后的文档。当用户选择“是”,则应用程序执行OnFileSave过程。
(2)调用CDocument::OnCloseDocument()虚函数,关闭所有与该文档相关联的文档窗口及相应的视图,调用文档类的DeleteContents清除文档数据。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值