第1章 Visual C++.NET介绍 1
1.1 Visual C++.NET的新特性 1
1.1.1集成开发环境 1
1.1.2添加新类 2
1.1.3 GDI+及相关API 2
1.1.4 Web服务及应用 2
1.1.5托管代码 2
1.2 Visual Studio.NET安装 3
1.2.1系统安装要求 3
1.2.2系统安装步骤 4
1.2.3修复产品安装 5
1.3系统组成 5
1.3.1 .NET框架 6
1.3.2 XML Web services 9
1.3.3语言增强 11
1.3.4集成开发环境 11
1.3.5 MSDN订阅 11
1.4一个简单的.NET程序实例 11
1.5本章小结 13
第2章 C++的重要性质 14
2.1数据抽象与类 14
2.1.1面向对象的概念 14
2.1.2数据抽象 15
2.1.3类 16
2.1.4应用实例 18
2.2构造函数与析构函数 21
2.2.1构造函数的定义 21
2.2.2构造函数的作用 21
2.2.3说明构造函数的规则 22
2.2.4析构函数的定义 23
2.2.5析构函数的作用 23
2.2.6说明析构函数的规则 23
2.2.7构造函数和析构函数的调用顺序 24
2.3重载 25
2.3.1重载的定义 25
2.3.2重载的作用 26
2.3.3类中函数名重载 26
2.3.4运算符重载 27
2.4继承 28
2.4.1继承的概念以及重要性 28
2.4.2继承的语法以及一个实例 28
2.5虚函数与多态性 31
2.5.1虚函数的定义 31
2.5.2虚函数的作用 32
2.5.3虚函数的声明 33
2.5.4类的多态性 33
2.6友元函数 34
2.6.1友元函数的声明方式 34
2.6.2友元函数的作用 34
2.6.3友元函数应用实例 34
2.7本章小结 36
第3章 MFC编程基础 37
3.1 MFC应用程序框架 37
3.1.1什么是MFC 37
3.1.2什么是应用程序框架 38
3.1.3使用应用程序框架的优点 38
3.2 MFC的编程领域 38
3.3使用向导生成应用程序的顺序 39
3.4一个经典的MFC应用程序 42
3.5本章小结 44
第4章 基本事件处理 45
4.1消息处理中的主要概念 45
4.1.1 Windows消息 45
4.1.2消息处理函数 45
4.1.3映射消息 46
4.2消息类型 46
4.2.1分类 46
4.2.2消息处理方式 46
4.2.3消息循环 47
4.3框架调用消息处理程序的方式 47
4.3.1消息的发送和接收 47
4.3.2非命令消息到达其处理程序的方式 48
4.3.3命令传送 48
4.3.4 OnCmdMsg处理程序 49
4.3.5重写标准命令传送 49
4.4框架搜索消息映射的方式 50
4.4.1查找消息映射 50
4.4.2派生的消息映射 50
4.4.3消息映射范围的处理程序 51
4.5声明消息处理函数 53
4.5.1标准Windows消息的处理程序 53
4.5.2命令和控件通知的处理程序 54
4.5.3处理反射消息 55
4.6添加MFC消息处理程序 57
4.6.1将消息映射到函数 57
4.6.2添加用于任何对话框控件的事件处理程序 58
4.7在状态栏中显示命令信息的方法 59
4.8动态更新用户界面对象 59
4.8.1调用更新处理程序的时机 59
4.8.2 ON_UPDATE_COMMAND_UI宏 60
4.8.3 CCmdUI类 60
4.9本章小结 60
第5章 基于对话框的应用程序设计 61
5.1对话框和控件的基本概念 61
5.1.1对话框的基本概念 61
5.1.2控件的基本概念 62
5.2如何使用对话框编辑器创建和编辑对话框 63
5.2.1创建新对话框 63
5.2.2创建用户无法在运行时退出的对话框 64
5.2.3显示或隐藏对话框编辑器工具栏 64
5.2.4在对话框控件和代码之间切换 65
5.2.5编辑对话框中的控件 65
5.2.6自定义控件 66
5.2.7定义助记键(访问键) 67
5.2.8指定对话框的位置和大小 67
5.3对话框的生命周期 68
5.3.1创建并显示对话框 68
5.3.2初始化对话框 68
5.3.3在对话框中处理Windows消息 69
5.3.4对话框数据交换 69
5.3.5对话框数据验证 70
5.3.6关闭对话框 70
5.3.7销毁对话框 70
5.4模式对话框设计实例 70
5.5无模式对话框设计实例 74
5.6本章小结 78
第6章 文档和视图 79
6.1文档和视图结构 80
6.1.1文档/视图的核心是四个关键类 80
6.1.2文档/视图结构的描述 80
6.1.3文档/视图结构的优点 80
6.1.4 “MFC应用程序向导”创建的文档和视图类 81
6.1.5文档/视图结构的替换选项 82
6.1.6文档、视图、框架间的关系和消息传送 83
6.1.7文档、视图、框架之间相互作用 84
6.2使用文档 85
6.2.1从CDocument派生文档类 85
6.2.2用文档数据变量管理数据 85
6.2.3将数据序列化到文件和从文件序列化数据 85
6.2.4不使用序列化机制 86
6.2.5在文档中处理命令 87
6.3使用视图 87
6.3.1 MFC中可用的派生视图类 87
6.3.2在视图中绘图 88
6.3.3通过视图解释用户输入 89
6.3.4视图在打印中的作用 90
6.3.5滚动和缩放视图 90
6.4单文档界面 90
6.4.1序列化 90
6.4.2 SDI简介 98
6.4.3将多个视图添加到单个文档 99
6.4.4 SDI程序实例 102
6.5多文档界面 108
6.5.1多文档类型、视图和框架窗口 108
6.5.2 MDI程序实例 110
6.6切分窗口与多视图 112
6.6.1切分窗口 112
6.6.2多视选择 113
6.6.3 CSplitterWnd类介绍 113
6.6.4演示切分窗口 114
6.7本章小结 116
第7章 动态链接库 117
7.1 DLL基础知识 117
7.1.1 DLL概述 117
7.1.2 DLL的优点 118
7.1.3 DLL类型 118
7.2 DLL的导入和导出 122
7.2.1 DLL的导入 122
7.2.2 DLL的导出 125
7.2.3 DLL的相互导入 130
7.3 DLL的链接方法 132
7.3.1隐式链接 132
7.3.2显式链接 133
7.3.3 DLL链接中的几个函数 135
7.4 DLL的初始化 137
7.4.1初始化规则DLL 137
7.4.2初始化扩展DLL 138
7.4.3初始化非MFCDLL 139
7.5 DLL的应用 140
7.5.1 DLL的使用 140
7.5.2 DLL的调试 140
7.5.3 DLL中使用多线程 141
7.6动态链接库实例 141
7.6.1 MFC动态链接库的创建 141
7.6.2创建一个 MFC应用程序 142
7.7本章小结 143
第8章 多线程程序设计 144
8.1进程与线程概述 144
8.1.1进程与线程的关系 144
8.1.2多线程编程技术 145
8.2创建用户界面线程 146
8.2.1创建用户界面线程 146
8.2.2启动用户界面线程 147
8.2.3用户界面线程编程实例分析 148
8.3创建辅助线程 152
8.3.1控制函数的实现 152
8.3.2启动辅助线程 152
8.4线程的同步 153
8.4.1线程同步类 153
8.4.2线程同步实例分析 155
8.5线程的终止 159
8.6本章小结 160
第9章 数据库程序设计 161
9.1数据库管理的优点 161
9.2结构化查询语言SQL 162
9.3 ODBC类数据库编程 164
9.3.1 ODBC基本概念 164
9.3.2 ODBC数据库程序设计的实现 165
9.3.3 MFC ODBC类介绍 166
9.3.4 MFC ODBC数据库访问 169
9.3.5 MFC ODBC编程实例 175
9.4 MFC DAO数据库访问 178
9.4.1 DAO和ODBC的选择使用 178
9.4.2使用DAO和ODBC可以访问的数据源 179
9.4.3 MFC对DAO的封装 179
9.4.4 MFC的DAO类介绍 180
9.4.5 DAO类与ODBC类相似之处 183
9.4.6 DAO的特色 184
9.4.7 MFC DAO应用程序的编写步骤 185
9.4.8 DAO实例 186
9.5 MFC ADO数据库访问 203
9.5.1一致数据访问技术介绍 204
9.5.2 ADO对象模型 205
9.5.3 MFC ADO编程 208
9.5.4实现对ADO操作 210
9.5.5 ADO数据绑定 215
9.6本章小结 216
第10章 网络编程 218
10.1 TCP/IP网络协议 218
10.1.1 TCP/IP结构 218
10.1.2常用协议 219
10.2 Winsock套接字介绍 220
10.2.1套接字(Sockets) 220
10.2.2服务器/客户端模型 221
10.2.3端口和套接字地址 222
10.2.4 Winsock编程原理 222
10.2.5 Winsock程序简单示例 225
10.3 CAsyncSocket类 226
10.3.1 CAsyncSocket类成员 226
10.3.2 CAsyncSocket类使用 235
10.4 CSocket类 236
10.4.1 CSocket类成员 236
10.4.2 CSocket对象与CArchive对象 238
10.4.3 CSocket编程模型 240
10.5套接字类派生 243
10.6套接字编程的阻塞 243
10.7服务器应用程序Server 244
10.8客户端应用程序Client 248
10.9本章小结 253
第11章 C++托管扩展编程 255
11.1 C++托管扩展应用简介 255
11.1.1何时使用C++托管扩展 255
11.1.2托管C++项目类型 256
11.2 C++托管扩展基本概念 257
11.2.1托管类型 257
11.2.2 _gc数组 257
11.2.3托管应用程序中的指针类型 258
11.2.4 C++托管扩展中的字符串 258
11.3托管代码与MFC 258
11.4使用C++托管扩展创建XML Web services 260
11.4.1创建XML Web services项目 260
11.4.2实现XML Web services功能 261
11.4.3调试XML Web services 262
11.4.4部署XML Web services 263
11.5使用C++托管扩展访问XML Web services 264
11.5.1创建XML Web services客户端项目 264
11.5.2添加Web引用 264
11.5.3访问XML Web services项目 265
11.5.4调试XML Web services客户端 266
11.6托管代码中的事件处理 267
11.6.1声明事件 267
11.6.2定义事件处理程序 267
11.6.3将事件处理程序与事件挂钩 267
11.6.4激发事件 267
11.6.5实例 267
11.7托管异常处理 269
11.7.1基本概念 269
11.7.2 C++托管扩展下的异常处理行为差异 272
11.8本章小结 279