深入解析MFC
基本信息
内容简介回到顶部↑
“本书绝对不是对现有文档的重新组织,也不是一本教你如何去做的书,而是一本告诉你MFC是如何运作的书。”
——Dean McCrory,MFC开发组负责人
这是一本填补“使用向导”类的VisualC++书籍、产品文档以及MFC源代码之间空隙的MFC书籍。本书是了解MFC内幕的向导,提供了关于那些没有文档记录的MFC类、实用函数和数据成员的独一无二并且透彻的信息,介绍了有用的编码技巧,并对MFC各个类之间的协作方式进行了重要的分析。
——Dean McCrory,MFC开发组负责人
这是一本填补“使用向导”类的VisualC++书籍、产品文档以及MFC源代码之间空隙的MFC书籍。本书是了解MFC内幕的向导,提供了关于那些没有文档记录的MFC类、实用函数和数据成员的独一无二并且透彻的信息,介绍了有用的编码技巧,并对MFC各个类之间的协作方式进行了重要的分析。
目录回到顶部↑
前 言
致 谢
简 介
第1章 mfc的概念性总括
面向对象编程的一些背景
面向对象编程术语
通常的对象
对象与c++
为什么使用oop
应用程序框架与mfc
mfc要点之旅
结语
第2章 基本的windows支持
mfc与c/sdk
基本的mfc应用程序组件
现在,找到winmain()
一些其他隐藏的信息
mfc对gdi的支持
结语
第3章 mfc中的消息处理
致 谢
简 介
第1章 mfc的概念性总括
面向对象编程的一些背景
面向对象编程术语
通常的对象
对象与c++
为什么使用oop
应用程序框架与mfc
mfc要点之旅
结语
第2章 基本的windows支持
mfc与c/sdk
基本的mfc应用程序组件
现在,找到winmain()
一些其他隐藏的信息
mfc对gdi的支持
结语
第3章 mfc中的消息处理
前言回到顶部↑
自从MFC 1.0于1990年发布以来,微软基础类(Microsoft Foundation Class)(现在是4.0版了)已经发展成为性能完全、健壮、口碑甚佳、使用广泛而且非常复杂的应用程序框架。对于我们这些一直跟着它发展的人,凭借使用以前版本MFC的历史和经验还能帮着减轻一点复杂度。而对于今天刚开始学习MFC的新手,学起来就太困难了。进入MFC的天堂需要不懈的努力——使用MFC写代码,并且大量地阅读。
当然,VisualC什(和其他获得MFC许可的C抖产品)都带有介绍MFC库的参考文档和概念信息。也有很多第三方写的书讲授如何使用MFC创建Windows应用程序。然而,所有这些知识源都把焦点集中在如何使用MFC上:调用什么、重载什么、怎样激活特定的特性。在几个流行的在线论坛上,已经就是否有必要在文档之上理解MFC的实现这个问题展开过几次有趣的讨论。我的观点是,要成为一个真正的MFC专家,你必须理解MFC的实现。对任何问题的最终回答常常是在源代码本身中找到的。这也是MFC提供源码的主要原因之一。
实际上,阅读源代码是我开始学习MFC的方法。我这样做部分是因为有必要,部分是出于我的天性。我介入MFC是从它的一个内部A1pha版开始的,这还是在Microsoft C/C++7.0开发过程中发布的。当时还没有MFC的文档,甚至CodeView也还不能处理C++代码。文档的匮乏没有带给我很大麻烦,因为我很想知道一切到底是怎么工作的。我一直问类似这样的问题:“MFC在处理Windows消息时怎么调用我的C什成员函数?”,“MFC的异常处理是如何实现的?”(当时Microsoft C++的编译器还不支持异常处理)。因此,我开始浏览代码,试图理解它。但是,是不是每个使用MFC的人都必须这么做?是不是每个人都有这么多时间?可能不是——有的人需要享受生活!
即使你有足够的时间来研究一摞一摞的MFC源代码,这本书也可以引导你了解哪里有些什么。Scot和George做了相当出色的工作,分析了MFC的源码,在本书中对MFC的很多关键的实现细节提供了解释。实际上,很多次我曾经试图写这样的一本书,但是我总是忙于挖掘MFC的新版本,没有这么多时间来创作这样一本书。幸运的是,我还有时间看完这本书,并且提供一点我的看法。
本书绝对不是对现有文档的一个重新组织,也不是一本教你如何去做的书,而是一本告诉你MFC是如何运作的书。很多章节都以类似这样的话开始:“下面的声明已经去掉了所有有文档说明的成员函数,我们将注意力集中在没有文档说明的实现细节上。”这些实现细节会令你明白某个类内在的一些性质和限制,即使这些可能在类的公共接口中不出现。这些细节以及它们如何影响你的应用程序的知识会影响你在自己代码中使用这些类的方式。当你真正坐下来写一个应用程序时,这些都是非常重要的细节。此外,有些细节可能只是为了趣味或展示一些你可能希望在自己的程序中使用的C++技术(或者是你要避免的技术)。不过作者并没有揭示所有有趣的东西,有些东西留给读者自己去挖掘。在读了本书中的大量分析之后,你应该已经有能力自己探究这里没讲到的主题。掌握这个技能十分重要——很多在流行的在线服务上问到的问题(甚至在微软内部问到的问题)都可以通过简单地浏览MFC代码而得到解答。
简而言之,本书是所有严谨的MFC开发人员的必备之作。实际上,微软内部的MFC开发、质量保证、用户培训小组的所有新老成员都应该读一读这本书。
Dean D.MCCrory
当然,VisualC什(和其他获得MFC许可的C抖产品)都带有介绍MFC库的参考文档和概念信息。也有很多第三方写的书讲授如何使用MFC创建Windows应用程序。然而,所有这些知识源都把焦点集中在如何使用MFC上:调用什么、重载什么、怎样激活特定的特性。在几个流行的在线论坛上,已经就是否有必要在文档之上理解MFC的实现这个问题展开过几次有趣的讨论。我的观点是,要成为一个真正的MFC专家,你必须理解MFC的实现。对任何问题的最终回答常常是在源代码本身中找到的。这也是MFC提供源码的主要原因之一。
实际上,阅读源代码是我开始学习MFC的方法。我这样做部分是因为有必要,部分是出于我的天性。我介入MFC是从它的一个内部A1pha版开始的,这还是在Microsoft C/C++7.0开发过程中发布的。当时还没有MFC的文档,甚至CodeView也还不能处理C++代码。文档的匮乏没有带给我很大麻烦,因为我很想知道一切到底是怎么工作的。我一直问类似这样的问题:“MFC在处理Windows消息时怎么调用我的C什成员函数?”,“MFC的异常处理是如何实现的?”(当时Microsoft C++的编译器还不支持异常处理)。因此,我开始浏览代码,试图理解它。但是,是不是每个使用MFC的人都必须这么做?是不是每个人都有这么多时间?可能不是——有的人需要享受生活!
即使你有足够的时间来研究一摞一摞的MFC源代码,这本书也可以引导你了解哪里有些什么。Scot和George做了相当出色的工作,分析了MFC的源码,在本书中对MFC的很多关键的实现细节提供了解释。实际上,很多次我曾经试图写这样的一本书,但是我总是忙于挖掘MFC的新版本,没有这么多时间来创作这样一本书。幸运的是,我还有时间看完这本书,并且提供一点我的看法。
本书绝对不是对现有文档的一个重新组织,也不是一本教你如何去做的书,而是一本告诉你MFC是如何运作的书。很多章节都以类似这样的话开始:“下面的声明已经去掉了所有有文档说明的成员函数,我们将注意力集中在没有文档说明的实现细节上。”这些实现细节会令你明白某个类内在的一些性质和限制,即使这些可能在类的公共接口中不出现。这些细节以及它们如何影响你的应用程序的知识会影响你在自己代码中使用这些类的方式。当你真正坐下来写一个应用程序时,这些都是非常重要的细节。此外,有些细节可能只是为了趣味或展示一些你可能希望在自己的程序中使用的C++技术(或者是你要避免的技术)。不过作者并没有揭示所有有趣的东西,有些东西留给读者自己去挖掘。在读了本书中的大量分析之后,你应该已经有能力自己探究这里没讲到的主题。掌握这个技能十分重要——很多在流行的在线服务上问到的问题(甚至在微软内部问到的问题)都可以通过简单地浏览MFC代码而得到解答。
简而言之,本书是所有严谨的MFC开发人员的必备之作。实际上,微软内部的MFC开发、质量保证、用户培训小组的所有新老成员都应该读一读这本书。
Dean D.MCCrory
评论交流
共有71人开贴评论 169人参与评论 62人参与打分 查看
发表于:2003-10-14 18:30:00
不管写这本书的人是谁, 我相信MFC已经不再是什么主流技术了,看看这本书的目录,我很难想象即使作者的水平高到天上去,他还能写些什么? MFC、OLE、ActiveX我看就这些了,能在增加什么新内容呢?微软已经不再继续MFC的后续开发了,从MFC4.2开始起就已经很稳定了,只是后期加入一些新的功能作为补充,大家真的没有必要再继续投入精力和金钱去学习和研究MFC了。如果你是初学者的话更没有必要了。如果你有一定的使用MFC的基础的话,我看这本书对你也不会有太大的帮助,相比起侯捷的《深入浅出MFC》,这本书就显得太没有深度了。
总的来说,MFC已经到头了,现在还继续写关于MFC的书,真的是不可理解。
总的来说,MFC已经到头了,现在还继续写关于MFC的书,真的是不可理解。
| 我要写评论 |
| 查看所有评论交流(共71条) |


点击看大图





加载中...
