按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
第二节 所有窗口类的基类:CWnd *
第三节 按钮
*
第四节 静态控件 *
第五节 文本编辑控件 *
第六节 列表框控件 *
第七节 组合框 *
第八节 滚动条控件 *
第七章 使用ActiveX控件
…………………………………………………………Page 7……………………………………………………………
第一节 什么是ActiveX控件 *
第二节 使用ActiveXMovie控件的视频播放器 *
第八章 文档 视结构
/
第一节 文档/视结构概述 *
第二节 使用AppWizard创建框架应用程序 *
第三节 生成文档 *
第四节 生成视 *
第五节 视类
*
第六节 同一文档的多个视
*
第七节 添加对多文档类型的支持 *
第九章 图形设备接口
第一节 设备上下文 *
第二节 画笔对象
*
第三节 刷子对象
*
第四节 字体对象 *
第五节 映射模式
*
第十章 MFC通用类
第一节 数组类 *
第二节 列表类 *
第三节 映射类 *
第四节 字符串类 *
第五节 日期和时间类 *
…………………………………………………………Page 8……………………………………………………………
第十一章 异常处理和诊断
第一节 处理C++异常
*
第二节 MFC异常 *
第三节 诊断服务 *
第十二章 多线程
第一节 创建线程
*
第二节 线程间通信 *
第三节 线程同步
*
第十三章 动态链接库
第一节 概述 *
第二节 创建和使用动态链接库
*
第三节 使用动态链接连库扩展MFC *
附表1 MFC类库层次表
附表2 ASCII码表 (0~127)
附录 虚拟键码
3
…………………………………………………………Page 9……………………………………………………………
第一章Visual C++简介
只要提到在Windows 95和Windows NT下进行32位的应用程序开发,就
不能不提到Visual C++。相比其它的编程工具而言,Visual C++在提
供可视化的编程方法的同时,也适用于编写直接对系统进行底层操作
的程序,其生成代码的质量,也要优于其它的很多开发工具。随
Visual C++所提供的Microsoft基础类库 (Microsoft Foundation
Class Library,简写为MFC),对Windows 95/NT所用的Win32应用程
序接口 (Win32 Application Programming Interface)进行了十分彻
底的封装,这使得可以使用完全的面向对象的方法来进行Windows
95/NT应用程序的开发,从而大量的节省了应用程序的开发周期,降
低了开发成本,也使得Windows程序员从大量的复杂劳动中解救出
来,相信随着对Visual C++了解的逐步深入,你会亲 自感受到这一
点。Visual C++使Windows编程不再深奥和晦涩,而是一件有意义并
且有趣的事情,而且,你并没有因为获得这种方便而牺牲应用程序的
性能。
在本章中,我们将讲述:
l Visual C++和MFC历史
l Visual C++ 5。0的不同版本和它们的区别
l Visual C++ 5。0的新特性
l Visual C++ 5。0集成开发环境的使用
第一节 Visual C++和MFC的历史
Visual C++的核心是Microsoft基础类库,即通常所说的MFC。尽管使
用Visual C++进行编程并不一定要使用MFC,使用MFC也不一定就要使
用Visual C++,Borland C++的新版本也提供了对MFC的支持,然而事
实上,在很多情况下,我们提到Visual C++时指的就是MFC,而提到
MFC时指的也就是Visual C++。因此,当你看到关于Visual C++或是
MFC的资料时,要知道,在绝大多数情况下,它们都是指同一样东
西。
MFC相当彻底的封装了Win32软件开发工具包 (Software Development
Kit,即通常所说的SDK)中的结构、功能,它为编程者提供了一个应
用程序框架,这个应用程序框架为编程者完成了很多Windows编程中
的例行性工作,如管理窗口、菜单和对话框,执行基本的输入和输
…………………………………………………………Page 10……………………………………………………………
出、使用集合类来保存数据对象等等,并且,MFC使得在程序中使用
很多过去很专业、很复杂的编程课题,如ActiveX、OLE、本地数据库
和开放式数据库互联 (Open Database Connectivity,简写为ODBC)、
Windows套接字和Internet应用程序设计等,以及其它的应用程序界
面特性,如属性页(也叫标签对话框)、打印和打印预览、浮动的和可
定制的工具条变得更加的容易。
早在1989年,Microsoft的程序员们开始试图将C++和面向对象的编程
概念应用于Windows编程中,以编写出一个可以使Windows编程更加简
便的应用程序框架。他们把这个应用程序框架叫做AFX (AFX这个词来
源于Application Framework,但奇怪的是这个词组中并没有包含
“X”这个字母)。直到今天,AFX小组早已不存在了,AFX这个名称也
于1994年初不再使用,但在Visual C++和MFC中,AFX的影子却随处可
见,很多全局函数、结构和宏的标识符都被加上了AFX的前缀。
最初的AFX版本在经过一年的艰苦之后诞生,却未能被大多数Windows
程序员所接受。AFX的确是经过了精心的规划和编码,并且,它也提
供了对Windows API的高度抽象,建立了全新的面向对象的AFX API,
但最要命的是AFX API库根本不兼容于现有的Windows API。由此导致
的最严重后果是大量的SDK代码无法移植,而程序员将学习两种完全
不同的编程方法。
AFX不得不重新做所有的一切,他们所创建的新的应用程序框架是一
套扩展的C++类,它封装和映射了Windows API,这就是MFC的前身。
过去的AFX小组也变成了MFC小组。最终,MFC的第一个公开版本于
1992年3月随Microsoft C/C++ 7。0 (而不是Visual C++ 1。0)一起推
出。那时距Windows 3。1发布尚有好几个月。在MFC 1。0中还没有文
档/视结构,但有类CObject和CArchive。在12个月之后,MFC 2。0随
Microsoft新的编程工具Visual C++ 1。0一道出炉。与MFC 1。0一样,
MFC 2。0仍是16位的,因为32位的Windows NT 3。1直到1993年7月才问
世。在MFC 2。0中,增加了对文档/视结构、OLE 1。0、Windows 3。1公
用对话框的支持和消息映射等。在Windows NT 3。1面世一个月以后,
Microsoft推出了32版本的Visual C++和MFC 2。1,它实际上是MFC
2。0的Win32接口。
最后一个16位的Visual C++编译器是1993年12月推出的Visual C++
1。5,直到今天,一些为Windows 3。1编写16位应用程序的程序员还在
使用这个版本。1994年9月,32位的MFC 3。0伴随着Visual C++ 2。0的
一道面市,在今天的计算机图书市场上,还有着的大量的关于Visual
C++ 2。0和MFC 3。0 的图书出售,因此,你可以想象得出Visual C++
2。0所取得的成功和它所产生的影响。并不象你预想的那样,在
…………………………………………………………Page 11……………………………………………………………
Visual C++ 5。0中包括的MFC版本不是MFC 5。0,而是MFC 4。21。发展
到今天,MFC已发展成一个稳定和涵盖极广的C++类库,为成千上万的
Win32程序员所使用。MFC库是可扩展的,它和Windows技术的最新发
展到目前为止始终是同步的。并且,MFC类库使用了标准的Windows命
名约定和编码格式,所以有经验的Windows SDK程序员很容易过渡到
MFC。MFC结合了Windows SDK编程概念和面向对象的程序设计技术,
从而具有极大灵活性和易用性。
第二节 Visual C++ 5。0的版本及新特性
Visual C++ 5。0是Microsoft于1997年4月推出的最新的Visual C++编
译器,它包括三个版本。各个版本之间的区别如表1。1所示:
第三节 Visual C++ 5。0的新特性
如果你没有使用过Visual C++ 4。x,或者虽然使用过Visual C++
4。x,但对它还不是非常之熟悉,那么你可以跳过这一节的内容,继
续阅读本书的其它内容。在这一节里列举了Visual C++ 5。0中新增的
所有特性,这些内容对熟练掌握了Visual C++ 4。x的程序员来说是很
有用处的,他们可以通过阅读本节了解到Visual C++ 5。0所做的改
进,从而知道自己应该补充的是哪一方面的内容。而对于Visual C++
的初学者和刚入门者来说,了解这些内容就不是那么有必要了,尤其
是当你急切地想进入Visual C++ 5。0的编程实践中去的时候。
表1。1 Visual C++ 5。0的不同版本
版本 特点
学习版 除了代码优化、剖析程序 (一种分析程度的运行时行为
(Learning 的开发工具)和到MFC库的静态链接外,Visual C++ 5。0
Edition) 学习版提供了专业版的其它所有功能。学习版的价格要
比专业版本低很多,这是为了使希望使用Visual C++
5。0来学习C++语言的个人也可以负担得起。但你不可以
使用Visual C++ 5。0学习版来开发供发布的软件,其授
权协议明确禁止这种做法。
专业版 Visual C++ 5。0可用来开发Win32应用程序、服务和控
(Professional 件。在这些应用程序、服务和控件中可使用由操作系统
Edition) 提供的图形用户界面或控制台API。
企业版 可用来开发和调试为Internet或企业内网(intranet)设
(Enterprise 计的客户…服务器应用程序。在Visual C++ 5。0企业版
Edition) 还包括了开发和调试SQL数据库应用程序和