VC应用程序框架
2009-10-07 20:29:12 来源:WEB开发网2.1 用户代码
2.2 调用CWinApp::OpenDocumentFile(lpszFileName),
调用CDocManager::OpenDocumentFile
a.判断有无该文件的打开文档对象,有则激活该窗口并返回
b.调用CMultiDocTemplate::OpenDocumentFile()
b.1 创建新的文档对象,创建新文档对象对应的子框架
b.2 调用应用程序的OnOpenDocument()
(1)调用CDocument::OnOpenDocument()
.打开文件对象
.调用应用程序的DeleteDontents();
.建立与此文件对象相关联的CArchive对象
.调用应用程序文档对象的Serialize()函数
.关闭CArchive对象,文件对象
(2)显示该文件窗口
b.3 返回
三.文件保存
ON_COMMAND(ID_FILE_SAVE,CDocument::OnFileSave)
入口:CDocument::OnFileSave()
调用:CDocument::DoFileSave()
如果当前文档对应的文件名为空或者为只读文件,以NULL为参数调用CDocument::DoSave(NULL),否则,以当前文档对应的文件名为参数调用CDocument::DoSave(m_strPathName);
ON_COMMAND(ID_FILE_SAVEAS,CDocument::OnFileSaveAs)
入口:CDocument::OnFileSaveAs()
以NULL为参数直接调用CDocument::DoSave(NULL);
CDocument::DoSave(LPCTSTR lpszPathName,BOOL bReplace);
如果lpszPathName为NULL,
1.设定应用程序默认的文件名
2.打开通用文件保存对话框,由用户设定保存文件的名字,并返回该文件名
如果lpszPahtName不为NULL,则跳为以上两步,直接进入下一步
3.调用应用程序的OnSaveDocument()
3.1.用户代码
3.2.调用CDocument::OnSaveDocument()
a.创建或打开文件对象
b.建立相对应的CArchive对象
c.调用应用程序文档对象的序列化函数Serialize()
d.关闭文件对象,CArchive对象
e.设置文件未修改标志
4.返回
更多精彩
赞助商链接