MFC程序结构分析

合集下载

mfc mdi选项卡拆分逻辑

mfc mdi选项卡拆分逻辑

mfc mdi选项卡拆分逻辑MFC MDI选项卡拆分逻辑详解一、MFC的基本概念1. MFC的定义MFC(Microsoft Foundation Classes)是微软公司推出的一套C++类库,用于开发Windows应用程序。

2. MFC的组成MFC由一系列类组成,这些类封装了Windows API,并提供了许多便捷的方法和属性,使得Windows应用程序开发更加简单高效。

3. MFC的特点MFC具有高度封装性、可移植性、易学易用、功能强大等特点。

二、MDI的基本概念1. MDI的定义MDI(Multiple Document Interface)是指一个主窗口下可以打开多个子窗口,每个子窗口都可以显示不同的文档内容。

2. MDI的特点MDI具有多文档编辑功能,可以方便地管理多个文档,对于需要同时处理多个文件的应用程序非常有用。

三、选项卡控件介绍1. 选项卡控件的定义选项卡控件(Tab Control)是一种常见的界面控件,它通常被用来切换不同页面或显示不同内容。

2. 选项卡控件的特点选项卡控件具有直观明了、易于操作、美观大方等特点,在Windows 应用程序中被广泛使用。

四、MDI选项卡拆分逻辑详解1. MDI选项卡的基本概念MDI选项卡是指在MDI窗口中使用选项卡控件来管理多个子窗口,每个子窗口对应一个选项卡。

2. MDI选项卡的实现步骤(1)创建一个MDI父窗口。

(2)使用选项卡控件来管理子窗口,每个子窗口对应一个选项卡。

(3)在每个子窗口中添加一个标识符为“Tabbed”的菜单,并将其与相应的命令ID关联。

(4)在菜单处理函数中调用CMDIFrameWndEx类的EnableMDITabbedGroups方法,启用MDI选项卡功能。

(5)在创建子窗口时设置相应的样式和属性,以实现MDI选项卡效果。

3. MDI选项卡拆分逻辑详解(1)当打开多个文档时,可以将它们放置在同一个MDI父窗口下,并使用选项卡控件进行管理。

第6章 MFC基础

第6章  MFC基础
-4-
MFC概述—MFC应用程序分析
➢ 无WinMain()函数 ➢ 应用程序对象:必须利用应用程序类实例化一个全局对象 ➢ InitInstance()函数:派生类中重写,用于初始化应用程序 ➢ MFC窗体:利用MFC已有的窗体类派生或实例化
-5-
MFC概述—MFC应用程序开发方法
创建项目 创建/编辑资源
函数功能 在数组的最后添加一个数组元素,在必要时扩展数组 将另一个数组添加到此数组,在必要时扩展数组 将另一数组复制给此数组,在必要时扩展数组 设定数组指定位置处的值,在必要时扩展数组 获得一个指向数组元素的指针 释放不用的数组内存 获取数组内指定位置处的值 获取数组中包含的元素个数 获取允许访问数组元素的值的指针 获取数组的上边界的值 在数组的指定位置插入一个元素,后面的元素下标加1 删除指定位置处的值 删除数组中的所有元素 设定数组指定位置处的值,数组不增长 设置数组的的初始大小 重载数组下标操作符
...... END_MESSAGE_MAP
- 10 -
MFC应用程序框架—消息映射
➢ 普通窗口消息
窗口消息 WM_CHAR WM_CLOSE
消息映射宏 ON_WM_CHAR ON_M_CLOSE
默认处理函数
afx_msg void OnChar (UINT, UINT, UINT); afx_msg void OnClose();
afx_msg void OnMouseMove( UINT, CPoint);
- 11 -
MFC应用程序框架—消息映射
➢ 命令消息
//命令消息使用ON_COMMAND宏对其进行映射响应,格式如下: ON_COMMAND(命令ID,响应函数)
//响应函数的原型如下: afx_msg void memberFxn();

mfc 知识点总结

mfc 知识点总结

mfc 知识点总结MFC库的基本组成包括以下几个部分:1. CObject类:是所有MFC类的基类,提供了对象的基本功能,包括内存管理、类型信息、对象的打印和序列化等。

2. CWnd类:是窗口类的基类,封装了Windows窗口的创建、显示、消息处理等功能。

3. CFrameWnd类:是框架窗口类,派生自CWnd类,封装了应用程序的主窗口,提供了菜单、工具栏、状态栏等UI组件。

4. CDocument类和CView类:分别是文档类和视图类,用于管理应用程序中的文档和视图。

文档类负责文档的打开、保存、关闭等操作,视图类负责文档内容的显示和交互。

5. CWinApp类:是应用程序类的基类,封装了应用程序的初始化、消息循环、资源管理等功能。

MFC库提供了丰富的类和函数,用于处理Windows应用程序的各个方面,下面将对MFC的一些重要知识点进行总结。

1. 消息处理在MFC应用程序中,窗口的消息处理是至关重要的。

MFC提供了消息映射机制来进行消息处理。

通过DECLARE_MESSAGE_MAP宏和BEGIN_MESSAGE_MAP/END_MESSAGE_MAP 宏,在类中声明消息处理函数并将消息与处理函数进行映射。

例如:```cpp// 声明消息处理函数afx_msg void OnMouseMove(UINT nFlags, CPoint point);// 映射消息到处理函数BEGIN_MESSAGE_MAP(CMyWnd, CWnd)ON_WM_MOUSEMOVE()END_MESSAGE_MAP()```2. 对话框对话框是Windows应用程序中常用的界面元素,用于与用户进行交互。

MFC提供了CDialog类和CDialogEx类来封装对话框。

开发者可以使用资源编辑器创建对话框模板,然后通过类向导生成对话框类。

对话框类中可以处理控件的事件,并通过DoModal函数或Create函数来显示对话框。

C++课件:MFC编程基础

C++课件:MFC编程基础

2021/7/10
12
MFC的优点
1、MFC对于类、类的继承、封 装、多态性、类间关系和相互作 用等应用程序特性都有具体体现, 可以使开发者高效、轻松地建立 Windows应用程序,而不受设 备限制并且由事件进行驱动。
2021/7/10
13
2、MFC具有良好的通用性和 可移植性,它定义了应用程序 的轮廓,并提供了用户接口的 标准实现方法,程序员所要做 的工作就是通过VC所提供的各 种工具来完成这个工作。
(1)CStatic(2)CButton(3)CEdit
(4)CScrollBar(5)CSliderCtrl
(6)CListBox (7)CComboBoxl
(8)CBitmapButton (9)CAnimateCtrl
(10) CTreeCtrl(11)CListCtrl
2021/7/10
27
程序员可以使用这一框架创建
Windows应用程序。
同时:MFC的组织是以C++类层次形式组

起来的,几个高层类提供一般功能,
而低层类实现更具体的功能,每一个低
层类都是从高层类派生而来,因此继承
了2021高/7/1层0 类的功能。
2
所以:MFC是一种类的层次结构, 它提供了一个应用程序开发框架, 此框架称为文档/视图架构。
1、Windows消息函数 2、文件处理函数 3、网络函数 4、菜单函数 5、文本与字体函数 6、硬件与系统函数 7、控件和消息函数 8、位图、图标和光栅运算函数 9、绘图函数 10、打印函数 11、设备场景函数 12、进程和线程函数
2021/7/10
6
程序员如何去学习MFC
1、C++语言基础 2、Windows操作系统基础 3、面向对象程序观念的基础

基于MFC的应用程序框架分析幻灯片PPT

基于MFC的应用程序框架分析幻灯片PPT
由基类CDocument派生,文档类负责存放程序 数据并读取磁盘文件数据,或将磁盘文件数 据写入磁盘文件中。 比如在建立一个图形系统时,存储图形的数 据结构等都是放在文档类中的。
2、视图类
视图类是由CView类派生的,它负责显示文档 类的数据,可以显示在屏幕上,也可以输出 在打印机和其他设备上。在屏幕上,这个类 管理客户窗口。 例:在实现一个图形系统时,屏幕上显示、 打印机绘图的工作都是由视图类完成的。
基于MFC的应用程序框架分析幻 灯片PPT
本PPT课件仅供大家学习使用 请学习完及时删除处理 谢谢!
一、什么是MFC?
1、概述 微软基础类库(MFC:Microsoft Foundation Class)
是微软为Windows程序员提供的一个面向对象的 Windows编程接口,它大大简化了Windows编程工作。 使用MFC类库的好处是:首先,MFC提供了一个标准化 的结构,这样开发人员不必从头设计创建和管理一个 标准Windows应用程序所需的程序,而是“站在巨人 肩膀上”,从一个比较高的起点编程,故节省了大量 的时间;其次,它提供了大量的代码,指导用户编程 时实现某些技术和功能。 2、MFC类库的概念及组成 (1) 类库是一个可以在应用中使用的相互关联的C++类 的集合。
化.如果失败,则调用应用类的ExitInstance ()函数,转至5)。 4)调用应用类的Run()函数,其功能主要是 进行消息循环,
不断获取消息和处理消息。一直到用户关闭应用程序的窗口, 产生WM_QUIT消息,调用ExitInstance ()函数,准备退出。
5)进行应用程序的收尾工作,比如删除注册 的窗口类等。 6)返回。
CDrawView* pView=(CDrawView *)GetActiveView( ); 3、获得应用类对象的指针 例:CDrawApp* pWinApp=(CDrawApp*)AfxGetApp(); 4、从应用类对象中获得主框架类对象的指针

mfc程序实验报告

mfc程序实验报告

mfc程序实验报告篇一:MFC实验报告实验日期:2013 年05 月18 日一、实验目的1、熟悉Visual C++的基本操作。

2、基本了解基于对话框的windows 应用程序的编写过程。

3、对于Windows Socket编程建立初步概念。

二、实验要求1、应用Visual C++中MFC CSocket 类,实现网络数据传输。

2、仿照本实验步骤,制作实用的局域网一对一聊天程序。

三、实验原理设置加入连接的数目,通过更改IP 地址和端口号,成为不同的客户端,与服务器端连接,实现用户间的聊天功能。

1.程序整体框架:主程序监听一端口,等待客户接入;同时构造一个线程类,准备接管会话。

当一个Socket会话产生后,将这个会话交给线程处理,然后主程序继续监听。

2.客户端(Client)客户端,使用Socket对网络上某一个服务器的某一个端口发出连接请求,一旦连接成功,打开会话;会话完成后,关闭Socket。

客户端不需要指定打开的端口,通常临时的、动态的分配一个端口。

3.服务器端(Server)服务器端,使用ServerSocket监听指定的端口,端口可以随意指定(由于1024以下的端口通常属于保留端口,在一些操作系统中不可以随意使用,所以建议使用大于1024的端口),等待客户连接请求,客户连接后,会话产生;在完成会话后,关闭连接。

4.用户图形界面用户图形界面方便程序与用户的交互,多个用户参加,完成会话功能,具体的设计要方便用户的使用,直观清晰,简洁明了,友好美观。

四、实验内容一个最简单的点对点聊天程序客户机/服务器模式是socket点对点网络程序典型的模式,以下这个实验就是实现一个简单的点对点通信的聊天程序。

它用到的方法也是面向连接TCP连接的套接字MFC典型方式。

其工作过程是:服务器首先启动,创建套接字后等待客户的连接;客户启动以后,创建套接字,然后和服务器建立连接;连接建立后,客户机和服务器可以通过建立的套接字连接进行信息通信。

MFC六大核心机制

MFC六大核心机制

MFC六大核心机制1.消息映射机制:MFC使用明确的消息映射机制来处理用户界面和系统事件。

应用程序通过重写消息映射函数来处理不同的消息事件,如鼠标点击、按键操作等。

消息映射机制使得开发者可以方便地响应和处理不同的用户交互动作。

2. 文档视图(Doc/View)体系:MFC采用了文档视图体系,将应用程序数据(文档)和用户界面(视图)分离。

文档表示应用程序的数据,视图代表用户界面,通过文档视图模式可以实现多视图的显示和操作。

开发者可以自定义文档类和视图类,通过它们来管理和展示数据。

3.对象序列化机制:对象序列化是指将对象的状态转换为可以存储或传输的格式,以便于在不同的环境中恢复对象的状态。

MFC提供了强大的对象序列化支持,可以方便地对应用程序的数据进行存储和加载。

开发者只需将需要序列化的成员变量标记为可序列化,并实现相关的序列化函数即可实现数据的持久化。

4.多线程支持:MFC提供了多线程支持,使得应用程序可以在多个线程中同时执行任务。

开发者可以使用MFC提供的线程类来创建和管理线程,并通过消息机制进行线程间的通信。

多线程支持有助于提高应用程序的性能和响应能力。

MFC的运行时类是一组用于封装常用功能的类,包括字符串操作、容器类、文件I/O等。

这些类提供了方便、高效的操作接口,减少了开发者对底层操作的依赖。

开发者可以直接使用MFC提供的运行时类来简化开发过程。

6.扩展性:MFC提供了丰富的扩展性机制,包括自定义控件、自定义对话框、自定义视图等。

开发者可以通过派生已有的MFC类来创建自定义的控件或界面,以满足特定的应用程序需求。

扩展性机制使得开发者可以充分发挥自己的创造力和想象力,实现更加个性化的应用程序。

总结:MFC六大核心机制为开发者提供了丰富的类和功能,使得开发Windows图形界面应用程序更加简单和高效。

通过消息映射机制、文档视图体系、对象序列化机制、多线程支持、运行时类和扩展性机制,开发者可以轻松地实现各种应用程序的需求,并提供更好的用户体验。

mfc工作原理

mfc工作原理

mfc工作原理MFC(Microsoft Foundation Classes)是微软公司开发的一套用于Windows操作系统的应用程序框架,它在C++语言的基础上封装了一些常用的图形用户界面(GUI)功能,简化了Windows应用程序的开发过程。

本文将围绕MFC的工作原理展开阐述。

MFC的工作原理主要包括以下几个方面:1. 类库结构:MFC是一个面向对象的类库,它由一系列C++类组成。

这些类封装了Windows API的功能,提供了一种更加便捷的方式来创建和管理Windows应用程序。

MFC的类库结构包含了一些基本的类,如CObject、CWnd和CFrameWnd等,以及一些用于界面设计的类,如CButton、CEdit和CListBox等。

2. 消息映射机制:在MFC中,窗口类派生自CWnd类,通过消息映射机制来处理用户输入、系统消息等事件。

当用户操作窗口时,例如点击按钮、拖动滚动条等,系统会生成相应的消息,MFC会将这些消息映射到窗口类的成员函数上进行处理。

开发者只需重载对应的成员函数,就可以实现自定义的响应逻辑。

3. 对话框和控件:MFC提供了对话框和控件的封装,使得开发者可以方便地创建和管理用户界面。

对话框是一个独立的窗口,可以包含各种控件,如按钮、文本框、列表框等。

开发者可以使用MFC 提供的类来创建和设置对话框及其控件,通过消息映射机制来处理用户操作。

4. 文档视图模型(Document-View模式):MFC采用了文档视图模型来处理应用程序的数据和界面显示。

开发者可以通过MFC提供的类来创建文档类和视图类,文档类用于管理应用程序的数据,视图类用于显示和编辑数据。

MFC会自动处理文档和视图之间的关联,使得数据的修改能够实时反映到界面上。

5. 消息循环:MFC应用程序在启动后会进入一个消息循环,不断地接收和处理消息。

消息循环负责分发消息,并将消息传递给对应的窗口类进行处理。

MFC提供了一个消息映射表,用于将消息和相应的处理函数关联起来。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主题: MFC深入浅出1.MFC深入浅出MFC概述2.3.1.MFC是一个编程框架2.3.MFC (Microsoft Foundation Class Library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。

因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。

Microsoft Visual C++提供了相应的工具来完成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。

4.5.6.7.1.封装2.3.构成MFC框架的是MFC类库。

MFC类库是C++类库。

这些类或者封装了Win32应用程序编程接口,或者封装了应用程序的概念,或者封装了OLE特性,或者封装了ODBC和DAO数据访问的功能,等等,分述如下。

4.5.(1)对Win32应用程序编程接口的封装6.7.用一个C++ Object来包装一个Windows Object。

例如:class CWnd是一个C++ window object,它把Windowswindow(HWND)和Windows window有关的API函数封装在C++window object的成员函数内,后者的成员变量m_hWnd就是前者的窗口句柄。

8.9.(2)对应用程序概念的封装10.11.使用SDK编写Windows应用程序时,总要定义窗口过程,登记Windows Class,创建窗口,等等。

MFC把许多类似的处理封装起来,替程序员完成这些工作。

另外,MFC提出了以文档-视图为中心的编程模式,MFC类库封装了对它的支持。

文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。

12.13.(3)对COM/OLE特性的封装14.15.OLE建立在COM模型之上,由于支持OLE的应用程序必须实现一系列的接口(Interface),因而相当繁琐。

MFC 的OLE类封装了OLE API大量的复杂工作,这些类提供了实现OLE的更高级接口。

16.17.(4)对ODBC功能的封装18.19.以少量的能提供与ODBC之间更高级接口的C++类,封装了ODBC API的大量的复杂的工作,提供了一种数据库编程模式。

20.21.22.23.继承24.25.首先,MFC抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。

这些类中,最重要的类是CObject和CCmdTarget。

CObject是MFC的根类,绝大多数MFC类是其派生的,包括CCmdTarget。

CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。

所有从CObject派生的类都将具备或者可以具备CObject所拥有的特性。

CCmdTarget通过封装一些属性和方法,提供了消息处理的架构。

MFC中,任何可以处理消息的类都从CCmdTarget派生。

26.27.针对每种不同的对象,MFC都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。

这些对象包括以下种类:窗口对象,基类是CWnd;应用程序对象,基类是CwinThread;文档对象,基类是Cdocument,等等。

28.29.程序员将结合自己的实际,从适当的MFC类中派生出自己的类,实现特定的功能,达到自己的编程目的。

30.31.32.33.虚拟函数和动态约束34.35.MFC以“C++”为基础,自然支持虚拟函数和动态约束。

但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。

例如,CWnd封装 Windows窗口对象时,每一条Windows消息对应一个成员函数,这些成员函数为派生类所继承。

如果这些函数都设计成虚拟函数,由于数量太多,实现起来不现实。

于是,MFC建立了消息映射机制,以一种富有效率、便于使用的手段解决消息处理函数的动态约束问题。

36.37.这样,通过虚拟函数和消息映射,MFC类提供了丰富的编程接口。

程序员继承基类的同时,把自己实现的虚拟函数和消息处理函数嵌入MFC的编程框架。

MFC编程框架将在适当的时候、适当的地方来调用程序的代码。

本书将充分的展示MFC调用虚拟函数和消息处理函数的内幕,让读者对MFC的编程接口有清晰的理解。

38.39.40.41.MFC的宏观框架体系42.8.9.如前所述,MFC实现了对应用程序概念的封装,把类、类的继承、动态约束、类的关系和相互作用等封装起来。

这样封装的结果对程序员来说,是一套开发模板(或者说模式)。

针对不同的应用和目的,程序员采用不同的模板。

例如,SDI应用程序的模板,MDI 应用程序的模板,规则DLL应用程序的模板,扩展DLL应用程序的模板,OLE/ACTIVEX应用程序的模板,等等。

10.11.这些模板都采用了以文档-视为中心的思想,每一个模板都包含一组特定的类。

典型的MDI应用程序的构成将在下一节具体讨论。

12.13.为了支持对应用程序概念的封装,MFC内部必须作大量的工作。

例如,为了实现消息映射机制,MFC编程框架必须要保证首先得到消息,然后按既定的方法进行处理。

又如,为了实现对DLL编程的支持和多线程编程的支持,MFC内部使用了特别的处理方法,使用模块状态、线程状态等来管理一些重要信息。

虽然,这些内部处理对程序员来说是透明的,但是,懂得和理解MFC内部机制有助于写出功能灵活而强大的程序。

14.15.16.总之,MFC封装了Win32 API,OLE API,ODBC API等底层函数的功能,并提供更高一层的接口,简化了Windows编程。

同时,MFC 支持对底层API的直接调用。

17.18.MFC提供了一个Windows应用程序开发模式,对程序的控制主要是由MFC框架完成的,而且MFC也完成了大部分的功能,预定义或实现了许多事件和消息处理,等等。

框架或者由其本身处理事件,不依赖程序员的代码;或者调用程序员的代码来处理应用程序特定的事件。

19.20.MFC是C++类库,程序员就是通过使用、继承和扩展适当的类来实现特定的目的。

例如,继承时,应用程序特定的事件由程序员的派生类来处理,不感兴趣的由基类处理。

实现这种功能的基础是C++对继承的支持,对虚拟函数的支持,以及MFC实现的消息映射机制。

21.22.23.MDI应用程序的构成24.25.本节解释一个典型的MDI应用程序的构成。

26.27.用AppWizard产生一个MDI工程t(无OLE等支持),AppWizard创建了一系列文件,构成了一个应用程序框架。

这些文件分四类:头文件(.h),实现文件(.cpp),资源文件(.rc),模块定义文件(.def),等。

28.29.30.31.1.构成应用程序的对象2.3.图1-1解释了该应用程序的结构,箭头表示信息流向。

4.5.6.从CWinApp、CDocument、CView、CMDIFrameWnd、CMDIChildWnd类对应地派生出CTApp、CTDoc、CTView、CMainFrame、CChildFrame五个类,这五个类的实例分别是应用程序对象、文档对象、视对象、主框架窗口对象和文档边框窗口对象。

主框架窗口包含了视窗口、工具条和状态栏。

对这些类或者对象解释如下。

7.8.(1)应用程序9.10.应用程序类派生于CWinApp。

基于框架的应用程序必须有且只有一个应用程序对象,它负责应用程序的初始化、运行和结束。

11.12.(2)边框窗口13.14.如果是SDI应用程序,从CFrameWnd类派生边框窗口类,边框窗口的客户子窗口(MDIClient)直接包含视窗口;如果是MDI应用程序,从CMDIFrameWnd类派生边框窗口类,边框窗口的客户子窗口(MDIClient)直接包含文档边框窗口。

15.16.如果要支持工具条、状态栏,则派生的边框窗口类还要添加CToolBar和CStatusBar类型的成员变量,以及在一个OnCreate消息处理函数中初始化这两个控制窗口。

17.18.边框窗口用来管理文档边框窗口、视窗口、工具条、菜单、加速键等,协调半模式状态(如上下文的帮助(SHIFT+F1模式)和打印预览)。

19.20.(3)文档边框窗口21.22.文档边框窗口类从CMDIChildWnd类派生,MDI应用程序使用文档边框窗口来包含视窗口。

23.24.(4)文档25.26.文档类从CDocument类派生,用来管理数据,数据的变化、存取都是通过文档实现的。

视窗口通过文档对象来访问和更新数据。

27.28.(5)视29.30.视类从CView或它的派生类派生。

视和文档联系在一起,在文档和用户之间起中介作用,即视在屏幕上显示文档的内容,并把用户输入转换成对文档的操作。

31.32.(6)文档模板33.34.文档模板类一般不需要派生。

MDI应用程序使用多文档模板类CMultiDocTemplate;SDI应用程序使用单文档模板类CSingleDocTemplate。

35.36.应用程序通过文档模板类对象来管理上述对象(应用程序对象、文档对象、主边框窗口对象、文档边框窗口对象、视对象)的创建。

37.38.39.构成应用程序的对象之间的关系40.41.这里,用图的形式可直观地表示所涉及的MFC类的继承或者派生关系,如图1-2所示意。

42.43.图1-2所示的类都是从CObject类派生出来的;所有处理消息的类都是从CCmdTarget类派生的。

如果是多文档应用程序,文档模板使用CMultiDocTemplae,主框架窗口从CMdiFarmeWnd派生,它包含工具条、状态栏和文档框架窗口。

文档框架窗口从CMdiChildWnd派生,文档框架窗口包含视,视从CView或其派生类派生。

44.45.46.47.构成应用程序的文件48.通过上述分析,可知AppWizard产生的MDI框架程序的内容,所定义和实现的类。

下面,从文件的角度来考察AppWizard生成了哪些源码文件,这些文件的作用是什么。

表1-1列出了AppWizard所生成的头文件,表1-2列出了了AppWizard所生成的实现文件及其对头文件的包含关系。

表1-1 AppWizard所生成的头文件头文件用途stdafx.h 标准AFX头文件resource.h 定义了各种资源IDt.h #include "resource.h"定义了从CWinApp派生的应用程序对象CTApp childfrm.h 定义了从CMDIChildWnd派生的文档框架窗口对象CTChildFramemainfrm.h 定义了从CMDIFrameWnd派生的框架窗口对象CMainFrametdoc.h 定义了从CDocument派生的文档对象CTDoc tview.h 定义了从CView派生的视图对象CTView表1-2 AppWizard所生成的实现文件实现文件所包含的头文件实现的内容和功能stdafx.cpp #include"stdafx.h" 用来产生预编译的类型信息。

相关文档
最新文档