第3章 MFC应用程序框架
- 格式:ppt
- 大小:209.00 KB
- 文档页数:14


第三章 MFC应用程序概述
1 第3章 MFC应用程序概述
精讲
Microsoft Windows是微软公司推出的一个应用于微机上的具有图形用户界面的多任务和多窗口的操作系统。Windows应用程序也称为窗口应用程序,所有的窗口应用程序都有着相同的窗口风格和菜单结构,用户界面友好,方便用户操作。本章从剖析窗口应用程序的基本结构入手,继而介绍使用MFC类库开发的应用程序框架结构,并介绍窗口应用程序运行的核心机制-消息映射。学习了本章,你将对MFC应用程序框架结构和运行机制有个整体的了解,为后面进入窗口应用程序开发打下良好的基础。
3.1 窗口应用程序概述
窗口应用程序的开发一般采用可视化的面向对象的开发,可选择的窗口应用程序开发语言有Visual
C++、Visual Basic、Visual Java、Dephi等等。无论采用哪一种开发语言,首先要了解窗口应用程序的基本机制。
3.1.1 窗口编程基础
窗口应用程序运行于Windows操作系统,Windows操作系统是一个多任务操作系统,因此窗口应用程序的组成,支持技术,基本运行机制等与DOS应用程序有着本质的区别。在学习开发窗口应用程序之前,先要对窗口应用程序有一个概念上的了解。
1. 窗口
窗口是应用程序与用户进行交互的界面,应用程序通过窗口传递信息给用户,同样用户通过窗口输入数据,发布命令给应用程序。Windows界面包含了丰富的标准用户界面元素,包括窗口、图标、菜单、滚动条、对话框、控件和消息框等。用户使用这些界面元素可以方便的与应用程序进行交互,一个典型的窗口外观如图3-1所示。
垂直滚动条 控制菜单栏 标题栏 菜单栏
关闭按钮 最小化按钮
最大化按钮
水平滚动条 窗口边界 客户区 VC++6简明教程
2
图3-1 Windows应用程序窗口组成
在Windows编程中,各种窗口、菜单、按钮、对话框及程序模块等Windows的规范部件是按“对象”来组织的。为了提高开发窗口应用程序的效率,微软公司为用户提供了大量能创建上述标准元素的API函数和C++类,并且以Windows API函数库和C++类库的形式提供给用户,以充分满足构成应用程序操作界面的需要。
第3章 MFC编程
3.1 MFC简介
3.1.1 MFC是什么
MFC的英文全称是Microsoft Foundation Class,即微软的基础类库。类库是一个在应用程序中使用的相互关联的C++类的集合。MFC的本质就是一个包含了许多已经定义好的对象的类库。MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序。MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。很多公司都提供C++类库,除了Microsoft公司的MFC,常用的类库还有Borland公司的OWL(object windows library)和IBM公司OCL(open class library)。
大家知道,虽然要编写的程序在功能上千差万别的,但从本质上来讲,都可以化分为用户界面设计、文件操作、多媒体使用、数据库访问等一些最主要的方面。这一点正是微软提供MFC类库最重要的原因,在这个类库中包含了一百多个程序开发过程中最常用到的对象。在进行程序设计的时候,如果类库中的某个对象能完成所需要的功能,这时只要简单地调用已有对象的方法就可以了。同时还可以利用面向对象技术中很重要的“继承”方法从类库中的已有对象派生出程序员自己的对象,这时派生出来的对象除了具有类库中的对象的特性和功能之外,还可以由程序员根据需要加上所需要的特性和方法,产生一个更专门的,功能更强大的对象。当然,也可以在程序中创建全新的对象,并根据需要不断完善对象的功能。
MFC是Visual C++软件的一部分。MFC库中的所有类形成了建立应用程序的框架,利用这些类可以充分支持Windows应用程序开发。构建MFC库的主要目的是为方便Windows应用程序的开发和设计。正是由于MFC编程方法充分利用了面向对象技术的优点,它使得编程时极少需要关心对象方法的实现细节,同时类库中的各种对象的强大功能足以完成设计任务的绝大部分,这使得应用程序设计中,程序员所需要编写的代码大为减少,有力地保证了程序的良好的可调试性。
mfc 程序框架
MFC(Microsoft Foundation Class Library)是微软提供的一个C++框架,主要用于开发Windows桌面应用程序。以下是MFC程序的基本框架:
1. 应用程序启动过程:
应用程序的启动从main()函数开始,main()函数通过CWinApp类创建一个应用程序对象,然后调用该对象的Run()函数进入消息循环。
2. 文档/视图结构:
MFC程序通常采用文档/视图结构,这种结构将应用程序的数据(文档)和数据的显示与修改(视图)分开。在MFC中,框架对象、文档对象和视图对象是通过一个单文档模板指针有机地组织在一起,并利用AddDocTemplate函数把这个单文档模板添加到文档模板中,从而把这三个类组织成为一个整体。
3. 对话框和控件:
MFC程序可以使用对话框和控件来与用户交互。对话框可以通过类向导创建,控件可以通过类向导添加到对话框中。
4. 事件处理:
MFC程序通过事件处理来响应用户的操作。事件处理函数通常在类向导中创建,并在函数中添加处理代码。
5. 资源管理: MFC程序使用资源管理器来管理界面资源,包括对话框、控件等。资源管理器负责加载和卸载资源。
6. 数据库操作:
MFC程序可以通过MFC提供的数据库类来进行数据库操作,如CRowset类、CRecordset类等。
7. 网络编程:
MFC程序也可以进行网络编程,通过MFC提供的网络类如CSocket类等。
以上是MFC程序的基本框架,具体实现会根据具体需求有所不同。
一.实验目的:
掌握MFC的基础知识和类库的组织结构
掌握简单的MFC应用程序框架
掌握MFC的消息映射和消息处理函数
掌握MFC的AppWizard生成的应用程序基本框架结构
二.实验内容:
在VC++的Windows编程中,主要有两种方法:一种是利用API函数;另一种是利用Microsoft提供的MFC类库。从上节课的内容我们可以看到,利用Windows API函数进行编程时,用户需要编写大量的代码,编程的工作量较大。本节介绍另外一种编程方法,利用MFC和应用程序向导(AppWizard)来编写Windows应用程序。即首先使用AppWizard生成应用程序的基本框架,然后用ClassWizard来建立应用程序的类、消息映射、消息处理函数或定义控件的属性、事件和方法,最后把应用程序所要求的功能添加到类中。
MFC常用类的体系结构如上图
说明
1、 CObject类是几乎所有MFC类的基类,几乎所有的MFC类都由它直接或间接派生。
2、 CCmdTarget类是MFC中开始具有消息循环和消息处理能力的基类,所有的能进行消息循环和消息处理的类都由它派生。
3、 CCmdTarget类派生了CWinThread(线程类)、CWnd(窗口类)、CDocument(文档类)和CDocTemplate(文档模板类)。
4、 CWinThread派生了CWinApp(应用程序类)、CWnd类派生了CFrameWnd(框架窗口类)和CView(视图类)。
5、 简单用程序框架是由CWinApp类和CFrameWnd类搭建的。
6、 文档/视图的应用程序框架是由CWinApp类、CFrameWnd类、CView类、CDocument类和CDocTemplate类搭建的。
例1、简单应用程序框架举例(ex41)
(1) 建立一个Win32 Application类型的工程,工程名为ex41
(2) 添加源文件(.cpp文件)。