按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
MFC 的运作机制太让人陌生了。
目前市面上有不少讲解MFC 程序设计观念的书籍,其中不乏很好的作品,包括Programming
Windows 95 with MFC (Jeff Prosise 着,Microsoft Press 出版),以及我曾经翻译过的Inside
Visual C++ 4。0 (David J。Kruglinski 着,Microsoft Press 出版)。深入浅出MFC 的宗旨与以
上二书,以及全世界所有的MFC 或Visual C++ 书籍,都不相同。全世界(呵,我的确敢
这么说)所有与MFC 相关的书籍的重点,都放在如何使用各式各样的MFC 类别上,并供
应各式各样的应用实例,我却意不在此。我希望提供的是对MFC 应用程序基本架构的每一
个技术环节的深入探讨,其中牵扯到MFC 本身的设计原理、对象导向的观念、以及C++ 语
言的高级议题。有了基础面的全盘掌握,各个MFC 类别之使用对我们而言只不过是手册查
阅的功夫罢了。
本书书名已经自我说明了,这是一本既深又浅的书。深与浅是悖离的两条射线,理不应同时
存在。然而,没有深入如何浅出?不入虎穴焉得虎子?
唯有把MFC 骨干程序的每一个基础动作弄懂,甚至观察其源代码,才能实实在在掌握MFC
这一套application framework 的内涵,及其对象导向的精神。我向来服膺一句名言:源代码
说明一切,所以,我挖MFC 源代码给你看。
这是我所谓的深入。
8
…………………………………………………………Page 31……………………………………………………………
唯有掌握住MFC 的内涵,对于各式各样的MFC 应用才能够如履平地,面对庞大的
application framework 也才能够胸中自有丘壑。
这是我所谓的浅出。
本书分为四大篇。第一篇提出学习MFC 程序设计之前的必要基础,包括Windows 程序的
基本观念以及C++ 的高阶议题。「学前基础」是相当主观的认定,不过,基于我个人的学习
经验以及教学经验,我的挑选应该颇具说服力。第二篇介绍Visual C++ 整合环境开发工具。
本篇只不过是提纲挈领而已,并不企图取代Visual C++ 使用手册。然而对于软件使用的老
手,此篇或已足以让您掌握Visual C++ 整合环境。工具的使用虽然谈不上学问,但在可视化
软件开发过程中扮演极重角色,切莫小觑它。
第三篇介绍application framework 的观念,以及MFC 骨干程序。所谓骨干程序,是指Visual
C++ 的工具AppWizard 所产生出来的程序代码。当然,AppWizard 会根据你的选项做出不同
的程序代码,我所据以解说的,是大众化选项下的产品。
第四篇以微软公司附于Visual C++ 光盘片上的一个范例程序Scribble 为主轴,一步一步加
上新的功能。并在其间深入介绍Runtime Type Information (RTTI )、Dynamic Creation 、
Persistence (Serialization)、Message Mapping、mand Routing 等核心技术。这些技术正
是其它书籍最缺乏的部份。此篇之最后数章则脱离Scribble 程序,另成一格。
9
…………………………………………………………Page 32……………………………………………………………
本书前身,1994/08 出版的Visual C++ 对象导向MFC 程序设计基础篇以及1995/04 年
出版的应用篇篇,序言之中我曾经这么说,全世界没有任何书籍文章,能够把MFC 谈得这么
深,又表现得这么浅。这些话已有一半成为昨日黄花:Microsoft Systems Journal 1995/07 的一
篇由Paul Dilascia 所撰的文章Meandering Through the Maze of MFC Message and mand
Routing ,以及Addison Wesley 于1996/06 出版的MFC Internals 一书,也有了相当程度的核
心涉猎,即连前面提及的Programming Windows 95 with MFC 以及Inside Visual C++ 4。0 两本
书,也都多多少少开始涉及MFC 核心。我有一种「德不孤必有邻」的喜悦。
为了维护本书更多的唯一性,也由于我自己又钻研获得了新的心得,本书增加了前版未有的
Runtime Type Information 、Dynamic Creation 等主题,对于Message Mapping 与mand
Routing 的讨论也更详细得多,填补了上一版的缝隙。更值得一提的是, 我把这些在MFC 中
极神秘而又极重要的机制,以简化到不能再简化的方式,在DOS 程序中仿真出来,并且补
充一章专论C++ 的高阶技术。至此,整个MFC 的基础架构已经完全曝露在你的掌握之中,
再没有任何神秘咒语了。
本书从MFC 的运用,钻入MFC 的内部运作,进而application framework 的原理,再至物
件导向的精神,然后回到MFC 的运用。这会是一条迢迢远路吗?
似远实近!
许多朋友曾经与我讨论过,对于MFC 这类application framework,应该挖掘其内部机制到什
么程度?探究源代码,岂不有违「黑盒子」初衷?但是,没有办法,他们也同意,不把那些
奇奇怪怪的宏和指令搞清楚,只能生产出玩具来。对付MFC 内部机制,态度不必像对付
MFC 类别一样;你只需好好走过那么一回,有个印象,足矣。至于庞大繁复的整个application
framework 技术的铺陈串接,不必人人都痛苦一次,我做这么一次也就够了 。
10
…………………………………………………………Page 33……………………………………………………………
林语堂先生在朱门一书中说过的一句话,适足作为我写作本书的心境,同时也对我与朋友
之间的讨论做个总结:
「只用一样东西,不明白它的道理,实在不高明」。
祝各位胸中丘壑自成!
侯俊杰 新竹1996。08。15
P。S。 愈来愈多的朋友在网络上与我打招呼,闲聊谈心。有医师、盲生、北京的作家、香港的
读者、从国中到研究所的各级学生。学生的科系范围广到令我惊讶,年龄的范围也大到令我
惊讶。对于深居简出的作家而言,读者群只是一个想象空间,哦,我真有这么多读者吗?! 呵
呵,喜欢这种感觉。回信虽然是一种压力,不过这是个甜蜜的负担。
你们常常感谢我带给你们帮助。你们一定不知道,没有你们细心研读我的心血,并且热心写
信给我,我无法忍受写作的漫漫孤寂!我可以花三天的时间写一篇序,也可以花一个上午设
计一张图。是的,我愿意!我对拥有一群可爱可敬的读者感到骄傲。
11
…………………………………………………………Page 34……………………………………………………………
12
…………………………………………………………Page 35……………………………………………………………
目 錄
目錄
( 表示本版新增內容)
*
* 讀者來函 / 1
* 第版序 / 5
第版序 / 7
目錄