深入浅出MFC第2版(PDF格式)-第8部分
按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
27
…………………………………………………………Page 50……………………………………………………………
深入湷觥 FC
模板(template)类别、异常处理(exception handling)。
■ MFC 六大技术之简化仿真(Console 程序)
第二篇【欲善工事先利其器】提供给对Visual C++ 整合环境全然陌生的朋友一个导引。
这一篇当然不能取代Visual C++ User's Guide 的地位,但对整个软件开发环境有全盘以
及概观性的介绍,可以让初学者迅速了解手上掌握的工具,以及它们的主要功能。
第三篇【浅出MFC 程序设计】介绍一个MFC 程序的生死因果。已经有MFC 程序经
验的朋友,不见得不会对本篇感到惊艳。根据我的了解,太多人使用MFC 是「只知道
这么做,不知道为什么」;本篇详细解释MFC 程序之来龙去脉,为初入MFC 领域的
读者奠定扎实的基础。说不定本篇会让你有醍醐灌顶之感。
第四篇【深入MFC 程序设计】介绍各式各样MFC 技术。「只知其然不知其所以然」
的不良副作用,在程序设计的企图进一步开展之后,愈来愈严重,最终会行不得也!那
些最困扰我们的MFC 宏、MFC 常数定义,不得一窥堂奥的MFC 黑箱操作,在本
篇陆续曝光。本篇将使您高喊:Eureka !
阿基米德在洗澡时发现浮力原理,高兴得来不及穿上裤子,跑到街上大喊:Eureka (我
找到了)。
范例程序方面,第三章有数个Console 程序(DOS…like 程序,在Windows 系统的DOS
Box 中执行),仿真并简化Application Framework 六大核心技术。另外,全书以一个循
序渐进的Scribble 程序(Visual C++ 所附范例),从第七章开始,分章探讨每一个MFC
应用技术主题。第13 章另有三个程序,示范Multi…View 和Multi…Document 的情况。
14 章~16 章是第二版新增内容,主题分别是MFC 多线程程序设计、Custom AppWizard 、
以及如何使用ponent Gallery 提供的ActiveX controls 和ponents 。
28
…………………………………………………………Page 51……………………………………………………………
第0章 你定要知道(導讀)
你需要什么技术基础
从什么技术层面切入Windows 软件开发领域?C/SDK ?抑或C++/MFC ?这一直是个
引起争议的论题。就我个人观点,C++/MFC 程序设计必须跨越四大技术障碍:
1。 对象导向观念与C++ 语言。
2。 Windows 程序基本观念(程序进入点、消息流动、窗口函数、callback。。。 )。
3。 Microsoft Foundation Classes (MFC )本身。
4。 Visual C++ 整合环境与各种开发工具(难度不高,但需熟练)。
换言之,如果你从未接触C++ ,千万不要阅读本书,那只会打击你学习新技术的信心而
已。如果已接触过C++ 但不十分熟悉,你可以一边复习C++ 一边学习MFC ,这也是
我所鼓励的方式(很多人是为了使用MFC 而去学习C++ 的)。C++ 语言的继承
(inheritance )特性对于我们使用MFC 尤为重要,因为使用MFC 就是要继承各个类别
并为己用。所以,你应该对C++ 的继承特质(以及虚拟函数,当然)多加体会。我在
第2章安排了一些C++ 的必要基础。我所挑选的题目都是本书会用到的技术,而其深
度你不见得能够在一般C++ 书籍中发现。
如果你有C++ 语言基础,但从未接触过Win16 或Win32 程序设计,只在DOS 环境下
开发过软件,我在第1章为你安排了一些Win32 程序设计基础。这个基础至为重要,只
会在各个Wizards 上按来按去,却不懂所谓message loop 与window procedure 的人,
不可能搞定Windows 程序设计…不管你用的是MFC 或OWL 或Open Class
Library ,不管你用的是Visual C++ 或Borland C++ 或VisualAge C++ 。
你需要什么软硬件环境
一套Windows 95 (或Windows NT )操作系统当然是必须的,中英文皆可。此外,你需
要一套Visual C++ 32 位版。目前的最新版本是Visual C++ 5。0 ,也是我使用的版本。
29
…………………………………………………………Page 52……………………………………………………………
深入湷觥 FC
硬件方面,只要能跑上述两种操作系统就算过关。内存(RAM )是影响运作速度的主
因,多多益善。厂商宣称16MB RAM 是一个能够使你工作舒适的数字,但我因此怀疑
「舒适」这个字眼的定义。写作本书时我的软硬件环境是:
■ Pentium 133
■ 96M RAM
■ 2GB 硬盘
■ 17 寸显示器。别以为显示器和程序设计没有关系。大尺寸屏幕使我们一次看多
一点东西,不必在Visual C++ 整合环境所提供的密密麻麻的画面上卷来卷去。
■ Windows 95 (中文版)
■ Visual C++ 5。0
让我们使用同一种语言
要在计算机书籍不可或缺的英文术语与流利顺畅的中文解说之间保持一个平衡,是多么不
容易的一件事。我曾经以为我通过了最大的考验,但每次总有新鲜事儿发生。是该叫class
好呢?还是叫「类别」好?该叫object 好呢?还是叫「对象」好?framework 难道该译
为框架吗?Document 译为「文件」,可也,可View 是什么碗糕?我很伤脑筋耶。考
虑了这本书的潜在读者所具备的技术基础与教育背景之后,原谅我,不喜欢在中文书中
看到太多英文字的朋友,你终究还是在这本书上看到了不少原文名词。只有几已统一化、
没有异议、可以望文生义的中文名词,我才使用。
虽然许多名词已经耳熟能详,我想我还是有必要把它们界定一下:
API Application Programming Interface 。系统开放出来,给程序员使用的接口,就是
API 。一般人的观念中API 是指像C 函数那样的东西,不尽然!DOS 的中断向量
(interrupt vector )也可以说是一种API ,OLE Interface (以C++ 类别的形式呈现)也可
以说是一种API 。不是有人这么说吗:MFC 势将成为Windows 环境上标准的C++ API
(我个人认为这句话已成为事实)。
30
…………………………………………………………Page 53……………………………………………………………
第0章 你定要知道(導讀)
SDK Software Development Kit ,原指软件开发工具。每一套环境都可能有自己的
SDK,例如Phar Lap 的386|DOS Extender 也有自己的SDK。在Windows 这一领域,
SDK 原是指Microsoft 的软件开发工具,但现在已经变成一个一般性名词。凡以
Windows raw API 撰写的程序我们通常也称为SDK 程序。也有人把Windows API 称为
SDK API 。Borland 公司的C++ 编译器也支持相同的SDK API (那当然,因为Windows
只有一套)。本书如果出现「SDK 程序」这样的名词,指的就是以Windows raw API 完
成的程序。
MFC Microsoft Foundation Classes 的缩写,这是一个架构在Windows API 之上的
C++ 类别库(C++ Class Library ),意图使Windows 程序设计过程更有效率,更符合物
件导向的精神。MFC 在争取成为「Windows 类别库标准」的路上声势浩大。Symantec C++
以及WAT C/C++ 已向微软取得授权,在它的软件开发平台上供应MFC 。Borland
C++ 也可以吃进MFC 程序代码…啊,OWL 的地位益形尴尬了。
OWL Object Windows Library 的缩写,这也是一个具备Application Framework 架势
的C++ 类别库,附含在Borland C++ 之中。
Application Framework 在对象导向领域中,这是一个专有名词。关于它的意义,本书
第5章有不少介绍。基本上它可以说是一个更有凝聚力,关联性更强的类别库。并不是
每一套C++ 类别库都有资格称为Application Framework ,不过MFC 和OWL 都可入
列,IBM 的Open Class Library 也是。Application Framework 当然不一定得是C++ 类别
库,Java 和Delphi 应该也都称得上。
为使全书文字流畅精简,我用了一些缩写字:
API Application Programming Interface
DLL Dynamic Link Library
GUI Graphics User Interface
MDI Multiple Document Interface
31
…………………………………………………………Page 54……………………………………………………………
深入湷觥 FC
MFC Microsoft Foundation Class
OLE Object Linking & Embedded
OWL Object Windows Library
SDK Software Development Kit
SDI Single Document Interface
UI User Interface
WinApp : Windows Application
以下是本书使用之中英文名词对照表:
、 、 。
Edit ListBox Button。。。
control 控制组件,如
drag & drop 拖放(鼠标左键按下,选中图标后拖动,然后放开)
Icon 图标(窗口缩小化后的小图样)
linked…list 串行
listbox 列表框、列表清单
notification 通告消息(发生于控制组件)
preemptive 强制性、先占式、优先权式
process 进程(一个执行起来的程序)
queue 队列
template template C++ 有所谓的class template,一般译为类别模板;
Windows 有所谓的dialog template,我把它译为对话框模板;
MFC 有所谓的Document Template,我没有译它(其义请见第7章
和第8章)
window class 窗口类别(不是一种 C++ 类別)
window focus 窗口焦点(拥有焦点之窗口,将可获得键盘输入)
32
…………………………………………………………Page 55……………………………………………………………
第0章 你定要知道(導讀)
类别 class
对象 object
构造式 constructor
析构式 destructor
运算子 operator
改写 override
多载 overloading,亦有他书译为「过荷」
封装 Encapsulation
继承 Inheritance
动态绑定