具体描述
作者简介
目录信息
第1章VC编程第一关:学习面向对象的概念
1.1为什么要学习VC
1.2什么是面向对象
1.3面向对象的好处
1.4 类和对象关系
1.5对象之间的关系
1.6封装性
1.7继承性
1.8多态性
1.9认识VisualC++集成开发环境
1.9.1 AppWizard工具
1.9.2项目和项目工作区
1.9.3ClassWizard工具
1.9.4WizardBar工具栏
1.10使用VC生成一个控制台应用程序
1.11练习题
第2章VC编程第二关:学习Windows编程基础知识
2.1Windows程序的特点
2.2Windows界面的基本要素
2.3Win32程序结构
2.3.1定义窗口类的结构
2.3.2窗口类的注册与窗口创建
2.3.3创建消息循环
2.3.4窗口主函数WinMain
2.3.5窗口函数WndProc和消息处理
2.3.6资源定义文件
2.4Win32程序开发流程
2.5利用VC生成一个典型Win32窗口程序
2.6认识VisualC++集成开发环境:资源管理器和联机帮助
2.6.1使用资源编辑器
2.6.2充分利用联机帮助查阅函数信息
2.7练习题
第3章揭开MFC应用程序框架秘密
3.1用AppWizard开发基于NDC的窗口程序
3.1.1生成MFC窗口程序
3.1.2使用项目工作区窗口浏览和添加代码
3.1.3设置程序环境参数
3.1.4VC集成开发工具与应用程序生成
3.2MFC应用程序框架与Win32程序的关联
3.2.1MFC应用程序框架对Win32程序主要逻辑的封装
3.2.2MFC应用程序的启动流程
3.2.3MFC应用程序启动顺序标记
3.3MFC应用程序框架的基本类
3.3.1基本类及其作用
3.3.2基本类与SDI.MDI
3.4MFC应用程序框架的基本类对象之间的相互访问
3.4.1SDI应用程序基本类对象之间的相互访问关系
3.4.2MDI应用程序基本类对象之间的相互访问关系
3.5练习题
第4章MFC应用程序的发动机:消息映射
4.1消息类别及其描述
4.1.1窗口消息
4.1.2命令消息
4.1.3控件消息
4.2MDC消息映射原理
4.2.1应用程序类的Run()函数
4.2.2SendMessage和PostMessage函数
4.2.3消息映射表
4.2.4使用MFC应用程序框架寻找消息处理函数
4.3MFC程序处理消息的路径
4.3.1如何处理窗口消息
4.3.2如何命令消息
4.3.3如何处理控件消息
4.4自定义消息处理
4.4.1自定义静态窗口消息
4.4.2自定义动态窗口消息
4.5实例1:自定义类如何响应命令
4.6实例2:自定义消息处理
4.7实例3:使用菜单.工具栏和加速键
4.8练习题
第5章装饰应用程序的外观:控制栏编程
5.1实例1:创建浮动工具栏
5.1.1利用AppWizard自动创建工具栏
5.1.2手工创建工具栏
5.1.3工具栏命令处理及其界面更新编程
5.1.4工具栏的隐藏/显示
5.2创建自定义状态栏
5.2.1利用AppWizard自动创建状态栏
5.2.2自定义状态栏
5.3实例2:创建DialogBar
5.4实例3:创建ReBar栏
5.4.1利用AppWizard生成伸缩栏
5.4.2手动生成伸缩栏
5.5练习题
第6章MFC与对话框编程
6.1对话框的基本原理
6.2 创建模式对话框
6.2.1创建对话框资源模板
6.2.2 对话框类的创建
6.2.3为对话框类加入成员变量
6.2.4对话框的初始化
6.2.5 信息交换.验证
6.2.6 对话框的运行
6.2.7一点改进,定义命令范围处理函数
6.3 无模式对话框
6.3.1无模式对话框的特点
6.3.2关于窗口对象的自动清除
6.4 创建属性表对话框
6.4.1属性表对话框的创建
6.4.2属性表对话框的运行机制
6.4.3属性表对话框的具体实例
6.5创建向导
6.5.1创建向导的属性页
6.5.2创建向导属性表
6.5.3显示向导
6.5.4设置向导的按钮
6.5.5响应向导的按钮
6.5.6运行向导
6.6练习题
第7章绘图与打印
7.1 MFC绘图需要哪些要素
7.1.1画布--设备场境类(CDC)
7.1.2绘图工具--图形对象类(CGdiObject)
7.2获取设备场境对象
7.3创建绘图工具--定义图形对象
7.3.1创建CPen对象
7.3.2创建CBrush对象
7.3.3创建CFont对象
7.4设置绘图属性
7.4.1设置绘图坐标系
7.4.2 其他绘图属性
7.4.3默认绘图属性
7.5绘图操作
7.5.1输出文本
7.5.2绘图操作
7.6绘图步骤
7.7实例:创建一个画图程序
7.8练习题
第8章文档类对象持续性
8.1CObject类的三大性质
8.1.1CObject类的三个性质
8.1.2 MFC应用程序中的三对宏
8.2 文档类持续性原理
8.2.1Serialize函数原理
8.2.2何时调用Serialize函数
8.2.3Serialize函数支持哪些数据类型持续化
8.2.4文档类的其他虚成员函数
8.3文档类持续性的局限性
8.3.1Serilize(CArchive&ar)函数不能适应的情况
8.3.2问题的解决办法
8.4文档-视图结构及其意义
8.5文档和视图的相互作用
8.6实例1:简单的文本编辑器Editor
8.7实例2:具有滚动视图的Editor编辑器
8.8练习题
第9章文档视图结构的高级形式:SDI与MDI
9.1文档视图结构组合的多种形式
9.1.1SDI与MDI程序的区别
9.1.2文档视图的多种组合形式
9.2实例1:动态切分窗口的SDI应用程序
9.3实例2,动态切分窗口的MDI应用程序
9.4实例3:静态切分窗口的多视图SDI应用程序
9.5实例4:静态切分窗口的多视图MDI应用程序
9.6实例5:无切分窗口的多视图SDI应用程序
9.7实例6:无切分窗口的多视图MDI应用程序
9.8如何选用MDC集合类
9.8.1 集合的形式
9.8.2 MFC提供了哪些集合类
9.8.3如何选择MFC的集合类
9.8.4如何使用MFC的模板集合类
9.9练习题
第10章动态链接库
10.1动态链接库介绍
10.1.1动态链接库和静态库
10.1.2动态链接库与进程的关系
10.1.3动态链接库与静态连接库的加载原理
10.1.4实例1:静态库的制作和使用
10.1.5实例2:Win32动态链接库的创建和使用
10.1.6显式连接与隐式连接
10.2MFC动态链接库
10.2.1MFC常规动态链接库与MFC扩展动态链接库
10.2.2实例
· · · · · · (收起)
读后感
用户评价
**图书评价三:** 我之所以选择这本书,主要是为了系统性地学习MFC的深度结构。市面上很多关于MFC的书籍,要么太浅尝辄止,只停留在“如何创建按钮”的层面;要么就是堆砌API手册,让人望而却步。这本书的结构设计显然经过深思熟虑,它仿佛遵循着一个自底向上的构建逻辑。从最基础的Win32 API调用开始,逐步过渡到MFC类库对这些API的封装和抽象,最后才是如何利用AppWizard和ClassWizard进行快速原型开发。我特别欣赏作者在讲解消息映射宏(Message Maps)时的详尽解析,真正让我明白了`ON_COMMAND`这类宏背后是如何与C++的虚函数机制巧妙结合,实现了事件驱动的编程范式。书中对GDI(图形设备接口)的介绍也相当到位,详细阐述了设备上下文(Device Context)的获取、选择和释放过程,这对于进行自定义绘图是至关重要的环节。尽管VC++ 6.0的编译器和调试器在处理模板和现代C++特性时存在局限性,但这本书的价值在于,它完美地展示了在那个特定时代,如何用面向对象的方式,最高效地驾驭Windows操作系统提供的原生能力。阅读体验是扎实且充满发现感的。
**图书评价一:** 这本书拿到手的时候,就被它厚重的分量和略显陈旧的封面吸引住了。我对C++这门语言一直心存敬畏,尤其是涉及到Windows底层编程和MFC(Microsoft Foundation Classes)时,总觉得门槛很高。这本书的定位似乎非常明确,就是为那些想要深入了解Visual C++ 6.0开发环境的初学者或有一定C语言基础的进阶者量身定制的“导学”材料。我尤其欣赏它在基础概念讲解上的耐心和细致,不同于市面上很多只顾着罗列语法和API的参考手册,它似乎更注重“为什么”和“怎么做”之间的逻辑联系。比如,它在阐述资源文件(Resource Scripts)与代码如何协同工作,以及消息循环(Message Loop)机制如何驱动一个窗口程序运行的那一部分内容,我感觉比我之前看过的几本更抽象的教材要直观得多。书中对于早期MFC框架下的文档/视图(Document/View)架构的剖析,虽然放到今天来看可能显得有些过时,但在理解面向对象思想在图形界面编程中的应用这一块,依然有着不可替代的价值。特别是对于那些需要维护或研究基于VC++ 6.0平台遗留项目的工程师来说,这本书无疑是一份扎实的、能够快速上手并理解其内部工作原理的宝贵资料。它的代码示例虽然使用的是那个时代的风格,但其蕴含的编程思想却是恒久适用的,这才是最吸引我的地方。
**图书评价四:** 对于一个习惯了现代集成开发环境(IDE)的开发者来说,初次接触这本书描述的那个“旧时代”的开发流程,确实需要一个适应期。然而,一旦我沉下心来,这本书中蕴含的对“程序设计”本质的探讨便显现出来。它不仅仅是一本技术手册,更像是一部关于软件工程实践的编年史。作者在探讨如何组织大型项目文件结构、如何有效地使用头文件和实现文件进行模块化设计时,提供了一些跨越时代的设计原则。特别是关于如何利用预编译头文件(PCH)来优化编译速度的章节,虽然现在编译器大多能自动优化,但书中对预编译机制的原理分析,还是让我对编译过程有了更深层次的理解。此外,书中对数据持久化和文件I/O操作的讲解,重点放在了CFile类和序列化机制上,这套机制虽然在后续的MFC版本中有所演进,但其核心的“对象状态保存与恢复”思想,是理解任何现代序列化框架的基础。总体而言,这本书提供了一种“慢工出细活”的编程心态,强调代码的健壮性而非仅仅追求快速实现功能。
**图书评价五:** 这本书给我最深刻的印象是其对“工具链”的全面覆盖。它不仅仅聚焦于编写代码,更花费了大量篇幅介绍如何驾驭Visual C++ 6.0这个集成的开发环境本身。从项目设置(Project Settings)中那些密密麻麻的编译选项、链接器输入、代码生成等设置,到调试器断点的设置、监视窗口的使用,以及更复杂的性能分析工具的初步介绍,这本书都进行了翔实地讲解。我尤其喜欢它对调试过程的系统性梳理,比如如何设置条件断点,如何查看汇编代码视图来理解C++代码被翻译成的机器指令,这些都是在很多高级教程中会被忽略的“工程细节”。通过这本书,我体会到在那个时期,调试一个复杂的、多线程的MFC程序,需要开发者具备多么扎实的底层知识和耐心。它教会我的不是如何点亮一个对话框,而是如何在一个复杂的、由多个模块构成的系统中,定位一个隐藏极深的Bug。这种对工具的深度掌握,使得这本书的指导价值超越了单纯的语言学习,更像是一份资深开发者的实战经验总结。
**图书评价二:** 说实话,我抱着一种“复古”的心态开始阅读这本关于Visual C++ 6.0的教材的。在这个.NET、Qt乃至更现代的跨平台框架大行其道的时代,专门去钻研一个已经淡出主流视野的IDE和编译器版本,本身就是一种挑战。然而,这本书的讲述方式却出乎意料地具有穿透力。它没有沉溺于过分现代化的特性,而是将重点放在了如何利用C++语言的核心能力结合微软的COM/OLE技术栈来构建原生Windows应用。我特别关注了其中关于调试技巧和内存管理的部分,书中对于指针操作和堆栈帧的细微差别处理,那种“硬核”的讲解方式,迫使我必须非常严谨地对待每一个内存分配和释放的细节。它不像现在很多IDE那样提供过于友好的自动内存管理提示,而是要求读者真正理解底层机制。这种强迫式的训练,对于提升我的C++基础内功非常有益。阅读过程中,我发现作者在处理异常处理和错误恢复机制时,展现出极强的系统性和条理性,使得那些曾经令人生畏的API调用错误,在书中的引导下变得可以预测和控制。这本书更像是一位经验老到的师傅,手把手教你如何在“没有安全网”的环境下搭建稳固的应用程序骨架。