`
tansitongba
  • 浏览: 503575 次
文章分类
社区版块
存档分类
最新评论

深入浅出MFC学习笔记(第7章:简单而完整的MFC骨干程序)

 
阅读更多

第七章简单而完整的MFC骨干程序。

这一章主要是剖析有AppWizard产生的完整的MFC骨干程序。

首先要熟记MFC类层次结构,这是理解MFC构建的前提。

MFC层次结构图:文档视图结构是MFC进化为应用程序框架的灵魂,在MFCCDocument负责处理数据,它只是个空壳,我们可以重写Serialze函数,派生符合我们需求的类。与CDocument相辅相成的是CView类,它是负责数据得显示的类,同时它还负责程序与使用者之间的交互。使用者对数据的修改都需要依赖CView类的响应。

有关文件读写的操作是由CDocument中的Serilize虚函数负责的。有关显示的操作是在CView中的OnDraw虚函数中处理的。当我们派生自己的两个类CMyDocCMyView,只要把所有精力花在CMyDoc::SerializeCMyView::OnDraw身上就可以了。

先介绍DocumentTemplate,在文档视图结构中,虽然CView负责显示,但是它的外围必须有一个外框窗口作为舞台。也可以说DocumentTemplateView窗口的一个容器,数据,数据的显示,以及容纳数据显示的窗口,它们是一体的。缺一不可。

程序每打开一个文件就应该产生三个对象:

1CDocument对象。

2CView对象。

3:外框窗口CMDIChildWnd对象。

这些对象是由DocumentTemplate对象进行管理

如:CMultiDocTemplate*pDocTemplate=newCMultiDocTemplate(IDR_SCRIBTYPE,

RUNTIME_CLASS(CMyDoc),

RUNTIME_CLASS(CChildFrame),

RUNTIME_CLASS(CMyView)

);

AddDocTemplate(pDocTemplate);

如果程序支持不同的文件格式,就需要不同的CMultiDocTemplate。它的第一个参数,表示此文件类型所使用的资源,如ICONMENU和字符串资源。字符串资源用以完整描述文件类型。这可以在程序中获得,通过调用CDocTemplate::GetDocString

RUNTIME_CLASS是一个宏,返回传递来的类中的CRuntimeClass静态对象。因此,每当使用者打开一份文件,Documenttemplate就能根据此创建三个对象,打开并显示相应文件。

因此在CMyWinAppInitInstance中首先new了一个CMultiDocTemplate对象,它用于管理DocumentviewFrame窗口。

LoadFrame用于产生主窗口并加载菜单,同时制定窗口标题、文件标题、扩展名等。LoadFrame内部将调用Create,后者将调用CreateWindowEx,触发WM_CREATE消息。

  一份Document可以映射给多个View显示,使用者对Document的任何操作都必须通过DocumentFrame窗口,消息随后传到CView

  构建主窗口有两个步骤,首先new一个CMDIFrameWnd对象,然后调用其LoadFrame函数,在此函数内会调用Create函数

分享到:
评论

相关推荐

    深入浅出MFC读书笔记3

    深入浅出MFC读书笔记3 在MFC中,Document-View架构是一个非常重要的概念。本文将对Document-View架构中的关键组件进行深入探讨,并对其实现思路进行详细的解析。 首先,让我们来看一下Document的概念。在MFC中,...

    深入浅出MFC学习笔记

    ### 深入浅出MFC学习笔记:关键知识点解析 #### 一、Windows消息机制与回调函数 在深入探讨MFC之前,我们先来理解Windows操作系统中的消息机制及其核心组成部分——回调函数。 ##### 1.1 Windows消息机制概述 ...

    深入浅出MFC读书笔记2

    深入浅出MFC读书笔记2是对MFC框架的进一步学习和理解,主要涵盖了MFC的基础概念、类库结构以及程序构建的关键要素。MFC(Microsoft Foundation Classes)是微软为Windows平台开发的应用程序提供的一种类库,它基于...

    《深入浅出MFC》高清第二版(书签)_深入浅出MFC_c++mfc_

    《深入浅出MFC》是一本专为C++程序员深入理解Microsoft Foundation Classes (MFC) 库而编写的经典教程。MFC是微软提供的一套C++类库,用于简化Windows应用程序开发,它将Windows API封装成易于使用的C++类。这本书的...

    MFC 深入浅出 + 学习笔记

    总的来说,"深入浅出MFC"的学习资源可以帮助开发者从基础到高级全面了解MFC,通过实例和笔记加深理解,从而更高效地开发Windows应用程序。无论是初学者还是有一定经验的程序员,都能从中受益,提升自己的MFC编程能力...

    《深入浅出MFC》读书心得

    MFC 是 Windows 程序设计的基础,深入浅出 MFC 是学习 Windows 程序设计的不二之选。 《深入浅出MFC》读书心得涵盖了 Windows 程序设计的方方面面,包括程序结构、头文件、makefile、消息循环等知识点,为开发者...

    深入浅出 MFC (第二版) 高清晰

    第七章 简单而完整:MFC骨干程序 第四篇 深入MFC 程序设计 第八章 Document-View深入探讨 第九章 消息映射与命令传递 第十章 MFC与对话框 第十一章 Vies功能的加强与重绘效率的提高 第十二章 打印与预览 第十三章 ...

    深入浅出MFC 深入浅出MFC 深入浅出MFC

    通过学习《深入浅出MFC》,读者不仅可以掌握MFC的基本用法,还能深入理解其设计哲学,从而更好地利用MFC开发高效、稳定、功能丰富的Windows应用程序。这本书的内容广泛且深入,适合有一定C++基础并且希望在Windows...

    深入浅出mfc-笔记

    ### 深入浅出MFC—笔记关键知识点解析 #### 一、Windows消息机制与回调函数 在深入了解MFC之前,我们首先需要理解Windows操作系统的基本工作原理,尤其是消息驱动模型以及回调函数的概念。 **1.1 Windows消息机制...

    深入浅出MFC简体中文版(附源码

    《深入浅出MFC简体中文版》是一本专注于Microsoft Foundation Classes (MFC) 的技术专著,旨在帮助读者深入理解和应用这一强大的Windows应用程序开发框架。MFC是微软为C++开发者提供的一种库,它封装了Windows API,...

    深入浅出MFC第一章例子

    《深入浅出MFC》是面向Windows编程领域的一本经典著作,主要讲解了Microsoft Foundation Classes (MFC)库的应用,这个库是微软为简化Windows应用程序开发而提供的C++类库。MFC是基于Windows API的封装,使得开发者...

    深入浅出.MFC

    《深入浅出MFC》是一本专为C++程序员深入理解Microsoft Foundation Classes (MFC)框架而编写的经典书籍。MFC是微软公司为Windows平台开发应用程序提供的一种强大的类库,它基于C++,极大地简化了Windows API的使用,...

    深入浅出MFC(PDF)

    《深入浅出MFC》是一本专为程序员设计的详细指南,主要讲解Microsoft Foundation Classes (MFC) 库的使用和开发技术。MFC是微软公司提供的一个C++类库,它封装了Windows API,使得开发者能用面向对象的方式来编写...

    深入浅出MFC(windows编程,MFC程序设计)

    深入浅出MFC:Windows编程与MFC程序设计的核心知识点 在探讨《深入浅出MFC:Windows编程,MFC程序设计》这一主题时,我们首先需要了解MFC(Microsoft Foundation Classes)的基本概念及其在Windows编程中的应用。...

    深入浅出MFC

    ### 深入浅出MFC —— 侯俊杰详解MFC技术 #### MFC简介与重要性 Microsoft Foundation Classes (MFC) 是一套由微软开发的C++类库,用于简化Windows应用程序的开发过程。它基于Windows API,通过面向对象的方法封装...

    深入浅出MFC 2e

    - **第7章 简单而完整:MFC骨干程序** - **Document/View模型**:介绍MFC中Document/View架构的概念及其优势。 - **Scribble程序设计**:通过Scribble示例程序来展示Document/View架构的应用。 - **主窗口与UI...

Global site tag (gtag.js) - Google Analytics