WEB开发网
开发学院软件开发VC 深入浅出MFC“文档/视图”架构(3)――文档 阅读

深入浅出MFC“文档/视图”架构(3)――文档

 2009-02-11 20:00:34 来源:WEB开发网   
核心提示: UpdateAllViews函数遍历视图列表,对每个视图都调用其OnUpdate函数实现视图的更新显示,深入浅出MFC“文档/视图”架构(3)――文档(8),2.文档的OPEN/NEW从连载2可以看出,在应用程序类CWinapp的声明中包含文件的New和Open函数:afx_msg voi

UpdateAllViews函数遍历视图列表,对每个视图都调用其OnUpdate函数实现视图的更新显示。

2.文档的OPEN/NEW

从连载2可以看出,在应用程序类CWinapp的声明中包含文件的New和Open函数:

afx_msg void OnFileNew();
afx_msg void OnFileOpen();

而在文档模板管理者类CDocManager中也包含文件的New和Open函数:

virtual void OnFileNew();
virtual void OnFileOpen();
virtual CDocument* OpenDocumentFile(LPCTSTR lpszFileName); // open named file

而文档模板类CDocTemplate也不例外:

virtual CDocument* OpenDocumentFile(
    LPCTSTR lpszPathName, BOOL bMakeVisible = TRUE) = 0;
    // open named file
    // if lpszPathName == NULL => create new file with this type
    virtual CDocument* CreateNewDocument();

复杂的是,我们在CDocument类中再次看到了New和Open相关函数:

virtual BOOL OnNewDocument();
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);

在这众多的函数中,究竟文档的创建者和打开者是谁?“文档/视图”框架程序“File”菜单上的“New”和“Open”命令究竟对应着怎样的函数调用行为?这一切都使我们陷入迷惘!

实际上“文档/视图”框架程序新文档及其关联视图和框架窗口的创建是应用程序对象、文档模板、新创建的文档和新创建的框架窗口相互合作的结果。具体而言,应用程序对象创建了文档模板;文档模板则创建了文档及框架窗口;框架窗口创建了视图。

上一页  3 4 5 6 7 8 9  下一页

Tags:深入浅出 MFC 文档

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接