`
wgq837051
  • 浏览: 86136 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MFC中OnNewDocument与Serialize调用过程

阅读更多

1. OnNewDocument()调用过程:

  程序启动->CWinApp:;OnFileNew(m_pDocManager->OnFileNew()) ->CDocManager::OnFileNew(pTemplate->OpenDocumentFile(NULL)) ->CSingleDocTemplate::OpenDocumentFile(CreateNewDocument->CreateNewFrame     pDocument->OnNewDocument) -> CGraphicDoc::OnNewDocument

2.Serialize()调用过程

文件打开菜单命令->CWinApp::OnFileOpen(m_pDocManager->OnFileOpen()) ->CDocManager::OnFileOpen(调用DoPromptFileName函数显示文件打开对话框->AfxGetApp()->OpenDocumentFile) ->CWinApp::OpenDocumentFile(m_pDocManager->OpenDocumentFile) ->CDocManager::OpenDocumentFile ->CSingleDocTemplate::OpenDocumentFile(pDocument->OnOpenDocument) ->CDocument::OpenDocument(构造一个CFile::modeRead模式的Cfile对象-》构造一个CArchive::load模式的CArchive对象-》Serialize(loadArchive))->CGraphicDoc::Serialize

 

 [文件\新建]和【文件\打开】菜单项的命令响应函数都是在CWinApp类中提供的。CWinApp类有一个成员变量:m_pDocManager,是指向CDocManager对象的指针,也就是说,CWinApp负责管理文档管理器,而后者有一个文档模板指针链表:m_templateList,用来保存文档模板的指针,即文档管器负责管理文档模板,而后者又是用来管理文档类、框架类和视类的,始终让这三个对象三位一体,一起为文档服务。

分享到:
评论

相关推荐

    MFC的程序框架剖析

    下面就剖析一下在MFC中是如何完成上述过程的。 (1)每个应用程序都有且仅有一个应用类的全局变量theApp,全局变量先于WinMain函数进行处理。 (2)WinMain函数体在APPMODUL.CPP文件中,定义如下: extern "C" int ...

    MFC常用的类及其成员函数简介

    主要功能是把对数据的处理从对用户的界面处理中分离出来,同时提供一个与视图类交互的接口。常用的成员函数有: OnNewDocument(): 建立新文档。 OnOpenDocument(): 打开一个文档。 OnCloseDocument(): 关闭文档。...

    Visual C++窗口标题改变的几种方法.doc

    在论坛中,经常有人会问到这个问题,所以今天整理了几种方法用来改变窗口标题,希望对这些朋友有所帮助。  一•单文档接口(SDI)类型窗口标题的改变  首先,我们来看Windows SDI类型窗口标题栏的结构形式。结合...

    小型绘图系统

    virtual void Serialize(CArchive& ar); //}}AFX_VIRTUAL // Implementation public: virtual ~CHomework2Doc(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) ...

    多文档多视图界面的DEMO

    经过多次探索,从网上找了资料,终于把多文档多视图界面基本上做出来了,这里上传的是多文档多视图的一个DEMO架构,实际使用时把OnNewDocument函数重载,以免在程序启动时候就提示模板选择,在主菜单中选择开启哪个...

Global site tag (gtag.js) - Google Analytics