VC03 MFC编程基础.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:6 大小:17KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

VC03 MFC编程基础.pdf

VC03MFC编程基础.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本文由失落的街区贡献doc1。VisualC++程序设计03:MFC编程基础程序设计:3.1MFC概述微软基本类库MFC(MicrosoftFoundationClass)是微软公司为Windows程序员提供的一个面向对象的Windows编程接口,它大大简化了Windows编程工作。使用MFC类库进行Windows应用程序开发具有很大的优越性。首先,MFC提供了一个标准化的结构,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是“站在巨人肩膀上”,从一个比较高的起点编程,因而节省了大量的时间;其次,它提供了大量现成的代码,并通过向导(应用程序向导AppWizard和类向导ClassWizard)指导用户编程时实现某些技术和功能。MFC类库充分利用了Microsoft开发人员多年开发Windows程序的经验,并可以将这些经验融入到你自己开发的应用程序中去。对用户来说,用MFC开发的最终应用程序具有标准的、熟悉的Windows界面,这样的应用程序易学易用;另外,新的应用程序还能立即支持所有标准Windows特性,而且是用普通的、明确定义的形式。事实上,也就是在Windows应用程序界面基础上定义了一种新的标准——MFC标准。早期,在开发Windows应用程序时必须使用微软的SDK,直接调用WindowsAPI函数。由于WindowsAPI的数目非常多,编写Windows应用程序不仅需要记住很多API函数,而且要小心谨慎地处理程序中的每一个细节。MFC按照面向对象的原理把这些浩繁的WindowsAPI按逻辑组织起来,使它们具备了抽象化、封装、多态性和模块化的性质。1989年,微软建立了ApplicationFramework(AFX)小组,负责开发和Borland公司的应用程序框架OWL(ObjectWindowsLanguage)相类似的应用程序框架。OWL是Borland公司为Windows程序员开发的一个类库,在当时非常成功。AFX小组最初的目标是利用最新的面向对象的技术来开发用于编写WindowsGUI程序的工具和类库。他们采用自顶向下的设计方法,逐步将对象抽象出来。然后,他们试着花了几个月时间用这个类库来编写应用程序,结果发现这个类库偏离WindowsAPI实在太远,过分的抽象并没有太大的实用性,反而大大降低了应用程序的效率。于是,他们放弃了整个AFX类库,对类库重新进行设计。他们采用了自底向上的方法,从已有的WindowsAPI着手,将类建立在WindowsAPI对象基础上,设计出后来成为MFC1.0的一个类库。我们可以在以后的学习中看到,很多类中的成员函数基本上是和WindowsAPI一一对应的。同时,我们也可以看到在MFC中的AFX时期的痕迹,许多源程序文件有afx前缀,如afxabort.cpp、afxmem.cpp等。MFC延用了许多AFX类库的宏,因此我们经常会看到以AFX开头的宏以及以Afx开头的全局函数。3.2MFC中类的组织结构和常用类3.2.1MFC中类的组织结构目前的MFC版本中包含了100多个类,不同的类实现不同的功能,类之间既有区别又有联系。MFC同时还是一个应用程序框架,它帮助定义应用程序的结构,以及为应用程序处理许多杂务。事实上,MFC封装了一个程序操作的每一方面。在MFC程序中,程序员很少需要直接调用WindowsAPI函数,而是通过定义MFC类的对象并调用对象的成员函数来实现相应的功能。MFC类库中类是以层次结构的方式组织起来的。几乎每个层次结构都与一个具体的Windows实体相对应,一些主要的接口类管理了难以掌握的Windows接口。这些接口包括:窗口、GDI类、对象链接和嵌入类(OLE)、文件类、对象I/O类、异常处理类以及集合类等。MFC类库中的类按层次关系可划分为如下若干个类:(1)根类:CObject。(2)应用程序体系结构类:包括应用程序和线程支持类、命令相关类、文档类、视图类、框架窗口类、文档模板类等。(3)窗口、对话框和控件类:包括框架窗口类(窗口)、视图类、对话框类、控件类、控制条类等。(4)绘图和打印类:包括输出(设备相关)类、绘图工具类等。(5)简单数据类型类。(6)数组、列表和映像类:包括数组类、列表类、映像类等。(7)文件和数据库类:包括文件I/O类、DAO类、ODBC类等。(8)Internet和网络工作类:包括ISAPI类、WindowsSocket类、Win32Internet类等。(9)OLE类:包括OLE容器类、OLE服务器page1类、OLE拖放和数据传输类、OLE普通对话框类、OLE动画类、OLE控件类、活动文