本书以实例为基础,在对这些实例的逐步讲解过程中,让读者对Visual C++.NET进行全面了解。微软的Visual Studio.NET框架既保留了前一个版本的MFC和COM的优点,又溶入了“统一”的思想,将Visual C++.NCT应用分为传统的非托管应用和相对较新的托管应用两种类型。\r\n 本书主要在三个方面对Visual C++.NEY进行介绍:首先是MFC,在新的平台下,编写MFC应用的工具似乎都有了改观,但是其核心并没有变化,本书会一步步揭开其中的秘密;本书还介绍了“托管C++”,它用到了公共语言运行环境(Common Language Runtime,CLR),CLR相对MFC来说是一套新的体系结构,但是面向对象的思想没有变,这也是为什么本书第2章用一章的篇幅来谈面向对象的C++的理论的原因;最后一章给大家展示了制作一个“裸COM”的全部经过,通过对这一章的学习,读者可知道许多与COM有关的基本概念。\r\n 本书的编写较多地考虑了编程规范。通过对本书的学习,读者可以养成良好的编程习惯。本书适合想学习Visual C++.NET的初、中级读者使用,也可作为Visual C++.NET初学者入门的培训教材。
第1章 绪论\r\n\r\n1.1 VC++.NET概述\r\n1.2 VC++.NET的新特性\r\n1.2.1 安装\r\n1.2.2 基本类库\r\n1.2.3 属性化编程\r\n1.2.4 集成开发环境\r\n1.2.5 托管C++\r\n1.3 为什么要学习VC++.NET\r\n1.4 学习VC++.NET的方法\r\n1.5 学习VC++.NET的几大禁忌\r\n1.5.1 半途而废\r\n1.5.2 “大全”的危害\r\n1.5.3 没有基础\r\n案例1-1 基于MFC的Visual C++.NET应用程序框架\r\n\r\n第2章 C++语言基础\r\n\r\n2.1 C++与C语言的关系\r\n2.1.1 C语言的特点\r\n2.1.2 C语言的局限\r\n2.1.3 C++语言的特点\r\n2.1.4 C++程序结构\r\n案例2-1 创建一个最简单的Win32应用\r\n2.2 引用与函数的单向值传递\r\n2.2.1 引用\r\n2.2.2 引用与指针\r\n2.2.3 函数的单向值传递\r\n2.2.4 指针与引用用作函数参数\r\n2.3 类与对象\r\n2.3.1 类说明\r\n2.3.2 对象说明\r\n2.3.3 对象的使用\r\n2.3.4 构造函数与析构函数\r\n2.4 封装\r\n2.4.1 封装的概念\r\n2.4.2 封装的意义\r\n2.5 继承\r\n2.5.1 继承的概念\r\n2.5.2 继承的实现\r\n2.5.3 继承的应用\r\n2.5.4 关于继承的几点说明\r\n2.6 多态\r\n2.6.1 多态性\r\n2.6.2 编译时的多态性\r\n2.6.3 虚函数\r\n2.6.4 运行时的多态性\r\n2.6.5 虚函数的访问权限\r\n2.6.6 纯虚函数\r\n2.6.7 赋值\r\n案例2-2 虚拟的绘图应用\r\n\r\n第3章 浅析微软的MFC\r\n\r\n3.1 Win32应用\r\n3.1.1 Win32程序框架\r\n3.1.2 Win32程序设计基础\r\n3.2 MFC结构\r\n3.2.1 MFC概述\r\n3.2.2 MFC结构体系\r\n3.3 MFC的消息机制\r\n3.3.1 系统消息\r\n案例3-1 在MFC应用框架中实现简单的系统消息\r\n3.3.2 窗口消息\r\n3.3.3 自定义消息\r\n案例3-2 完成自定义消息的定义与处理\r\n3.3.4 消息映射\r\n3.3.5 几处变化\r\n3.4 MFC的基石\r\n3.4.1 文档视图结构应用框架\r\n3.4.2 面向对象的C++思想\r\n3.4.3 文档与视图通信\r\n\r\n第4章 对话框应用\r\n\r\n4.1 对话框应用概述\r\n4.2 控件及其应用\r\n4.2.1 简单控件的使用\r\n案例4-1 创建使用简单控件的基于对话框的应用程序\r\n4.2.2 复杂控件的使用\r\n案例4-2 使用复杂控件\r\n4.2.3 控件的使用原则\r\n案例4-3 使用对话框与控件开发一个磁盘空间监视器\r\n\r\n第5章 MFC的文档与视图\r\n\r\n5.1 理解文档与视图\r\n5.1.1 文档与视图的关系\r\n5.1.2 理解单文档\r\n5.1.3 理解多文档\r\n5.2 拆分窗口\r\n5.2.1 拆分窗口\r\n5.2.2 使用拆分窗口的意义\r\n5.2.3 拆分窗口的实现\r\n案例5-1 实现动态拆分窗口\r\n案例5-2 实现静态拆分窗口\r\n5.3 菜单\r\n5.3.1 菜单资源\r\n5.3.2 菜单项的映射与处理\r\n5.3.3 更新命令用户接口消息\r\n5.3.4 多个命令映射到同一人口函数\r\n5.3.5 动态创建菜单\r\n案例5-3 创建并使用动态菜单\r\n5.4 工具栏\r\n5.4.1 工具栏资源\r\n5.4.2 工具栏编程\r\n5.4.3 浮动工具栏编程\r\n案例5-4 浮动工具栏应用\r\n\r\n第6章 绘图\r\n\r\n6.1 设备描述表(DC)\r\n6.1.1 设备描述表\r\n6.1.2 使用设备描述表\r\n6.1.3 设备描述表分类\r\n6.2 绘图对象\r\n6.2.1 画笔\r\n6.2.2 画刷\r\n6.2.3 字体\r\n6.2.4 区域\r\n6.2.5 库存对象\r\n6.2.6 其他绘图对象\r\n6.3 映射模式\r\n6.3.1 默认映射模式MM_TEXT\r\n6.3.2 与设备无关的映射模式\r\n6.3.3 可变映射模式\r\n6.3.4 坐标变换\r\n案例6-1 确定鼠标是否点中矩形区域\r\n6.4 函数OnDraw\r\n案例6-2 在客户区内绘制转动的轮子\r\n\r\n第7章 输入与输出\r\n\r\n7.1 概述\r\n7.2 对话框\r\n7.2.1 对话框资源\r\n7.2.2 模式对话框与无模式对话框\r\n7.2.3 创建模式对话框\r\n案例7-1 使用一个模式对话框向应用程序输入文本信息\r\n7.2.4 创建无模式对话框\r\n案例7-2 使用无模式对话框向应用程序输入文本信息\r\n7.2.5 公用对话框\r\n7.3 属性页、属性表和属性向导\r\n7.3.1 属性页与属性表\r\n案例7-3 创建属性表\r\n7.3.2 属性向导\r\n7.4 鼠标与键盘\r\n7.4.1 鼠标数据\r\n案例7-4 在屏幕上拖动正方形\r\n7.4.2 键盘信息\r\n7.5 文件\r\n7.5.1 文件概述\r\n7.5.2 文档序列化\r\n案例7-5 文档的读写\r\n案例7-6 序列化对象\r\n7.5.3 直接读写文件\r\n7.5.4 灵活地使用C语言的文件操作函数\r\n\r\n第8章 动态链接库\r\n\r\n8.1 动态链接库概述\r\n8.2 动态链接库基础\r\n8.2.1 动态链接库函数的导人与导出\r\n8.2.2 编译器对导人与导出的影响\r\n8.2.3 隐式链接与显式链接\r\n8.2.4 动态链接库人口点\r\n8.2.5 客户程序如何寻找动态链接库\r\n8.2.6 使用动态链接库的好处\r\n8.3 使用MFC创建和使用动态链接库\r\n8.3.1 创建扩展动态链接库\r\n案例8-1 创建一个带有基本运算功能的扩展动态链接库\r\n8.3.2使用扩展动态链接库\r\n案例8-2 使用扩展动态链接库完成简单的计算器应用\r\n8.3.3 创建规则动态链接库\r\n案例8-3 创建一个带有基本运算功能的规则动态链接库\r\n8.3.4使用规则动态链接库\r\n案例8-4 使用规则动态链接库完成简单的计算器应用\r\n8.3.5 通过显式链接使用动态链接库\r\n案例8-5 通过显式链接使用规则动态链接库完成计算器应用\r\n\r\n第9章 打印与打印预览\r\n\r\n9.1 打印的实现\r\n9.1.1 打印设备描述表与屏幕设备描述表\r\n9.1.2 用MFC实现最简单的打印\r\n案例9-1 使用MFC实现一个简单的设备无关的打印功能\r\n9.2 使用MFC实现定制打印\r\n9.2.1 使用MFC打印的内在机理\r\n9.2.2 使用MFC打印预览的内在机理\r\n案例9-2 实现多页打印\r\n9.2.3 打印页眉和页脚\r\n案例9-3 打印一份酒店便签\r\n9.2.4 实现打印与显示不同\r\n案例9-4 实现打印与显示的分离\r\n\r\n第10章 数据库编程\r\n\r\n10.1 数据库\r\n10.1.1 关系型数据库模型\r\n案例10-1 创建简单的Access数据库\r\n10.1.2 数据库访问\r\n10.1.3 数据源\r\n案例10-2 创建数据库BDB的数据源\r\n10.1.4 VisualC++.NET的ODBC类\r\n10.2 操纵数据库\r\n10.2.1 建立数据库表与应用的连接\r\n案例10-3(上) 创建ODBC数据库应用程序\r\n10.2.2 完成数据库查询与修改操作\r\n案例10-3(下) 完成对数据库的查询与修改\r\n10.3 OLEDB、ADO和SQL\r\n10.3.1 什么是OLEDB\r\n10.3.2 什么是ADO\r\n10.3.3 ADO和OLEDB\r\n10.3.4 SQL\r\n\r\n第11章 使用托管C抖进行.NET编程\r\n\r\n11.1 概述\r\n11.1.1 托管C什语言出现的背景\r\n11.1.2 托管C什与.NET框架\r\n11.1.3 使用托管C++语言\r\n11.2 理解.NET框架\r\n11.2.1 公共语言运行环境(CLR)\r\n11.2.2 部件(assemblies)\r\n11.2.3 元数据(metadata)\r\n11.3 托管C++语言基础\r\n11.3.1 理解托管类型\r\n11.3.2 值类型\r\n11.3.3 垃圾收集类型(引用类型)\r\n11.3.4 封箱(boxed)与拆箱(unboxed)\r\n案例11-1 使用应用向导创建一个空的托管C什应用\r\n11.3.5 接口类型\r\n11.3.6 数组\r\n11.3.7 字符串\r\n案例11-2 使用应用向导创建一个托管C什项目\r\n11.3.8 代理(delegate)\r\n11.3.9 属性成员\r\n11.3.10 对异常的处理\r\n11.3.11 别针型指针\r\n11.4 完整的托管应用程序\r\n案例11-3 创建一个记事本应用程序\r\n\r\n第12章 组件对象模型\r\n\r\n12.1 概述\r\n12.1.1 什么是COM\r\n12.1.2 为什么要用COM编写组件\r\n12.1.3 学习COM之前的准备\r\n12.2 学习COM所必须了解的概念\r\n12.2.1 接口(interface)\r\n12.2.2 组件\r\n12.2.3 引用计数\r\n12.2.4 全局惟一标识GUID\r\n12.2.5 返回值类型HRESULT\r\n12.2.6 类工厂(ClassFactory)\r\n12.2.7 服务器\r\n12.2.8 注册表\r\n12.2.9 客户端应用\r\n12.3 创建一个"裸"COM组件\r\n12.3.1 创建过程\r\n案例12-1 手工创建COM组件\r\n12.3.2 调用COM组件的过程\r\n12.3.3 创建COM组件客户\r\n案例12-2 创建使用BareCOM组件的客户端应用\r\n12.4 使用ATL创建实用的COM组件\r\n12.4.1 模板简介\r\n12.4.2 理解ATL\r\n12.4.3 代理占位模块与DCOM网络协议\r\n12.4.4 使用ATL创建组件\r\n案例12-3 使用ATL创建完成加法功能的组件\r\n12.4.5 使用由ATL创建的组件\r\n案例12-4 创建一个使用SimpleObj组件的客户应用