第1章 VisualC++.NET概述 1
1.1 微软的NET战略 1
1.1.1 NET的核心组件 1
1.1.2 NET的重大意义 1
1.1.3 NET与Web服务 2
1.1.4 NET体验 2
1.1.5 VisualStudio.NET 3
1.2 VisualC++.NET的新特性 4
1.2.1 C++属性 5
1.2.2 通用语言运行时 5
1.2.3 受控代码(C++托管扩展) 5
1.2.4 基础类库与命名空间 6
1.2.5 NET框架类库 6
1.2.6 ATLServer 6
1.2.7 类库的升级 6
1.2.8 编辑器特性的改进 7
1.2.9 调试器特性的改进 7
1.2.10 编译器的新特性 8
1.3 VisualStudio的集成开发环境 9
1.3.1 VisualStudio起始页 10
1.3.2 VisualStudio.NET的配置 11
1.3.3 创建新项目 12
1.3.4 VisualStudio集成开发环境(IDE)主要窗口功能介绍 13
1.3.5 窗口模式与界面模式 19
1.3.6 文本编辑器的使用 20
1.3.7 控件编辑 23
本章小结 25
第2章 C++语言简介 26
2.1 C++语言概述 26
2.1.1 C++的发展历程 26
2.1.2 C++与面向对象程序设计 26
2.1.3 C++的程序结构 28
2.1.4 在VisualStudio.NET中设计C++程序 28
2.2 C++的数据类型 30
2.2.1 常量及其定义 30
2.2.2 变量 31
2.2.3 保留字 31
2.2.4 指针 31
2.2.5 基本数据类型 32
2.2.6 复合数据类型 33
2.3 C++的流程控制 36
2.3.1 条件语句 36
2.3.2 循环语句 38
2.3.3 转移语句 39
2.4 C++的函数 40
2.5 NET对C++语言的扩展 40
本章小结 42
第3章 VC++与面向对象程序设计 43
3.1 面向对象概述 43
3.2 类 44
3.2.1 什么是类 44
3.2.2 类的定义格式 44
3.3 对象 46
3.3.1 对象的定义格式 46
3.3.2 对象成员的表示方法 46
3.3.3 指向对象的指针 47
3.4 类与对象的使用 47
3.4.1 对象初始化 47
3.4.2 成员函数的特性 50
3.4.3 常类型(const) 51
3.4.4 静态成员(static) 51
3.4.5 类的作用域 52
3.4.6 友元(friend) 52
3.4.7 new和delete的应用 53
3.4.8 局部类和嵌套类 54
3.4.9 对象的生存周期 55
3.4.10 对象指针和对象引用 55
3.4.11 类型转换 57
3.5 继承与派生 57
3.5.1 基类和派生类 58
3.5.2 单继承 59
3.5.3 多继承 60
3.5.4 虚基类 61
3.6 多态和虚函数 62
3.6.1 重载 62
3.6.2 运算符重载 64
3.6.3 虚函数 64
3.6.4 纯虚函数和抽象类 65
3.6.5 虚析构函数 66
本章小结 66
第4章 WindoWS程序设计 67
4.1 Windows基础 67
4.1.1 Windows的介绍 67
4.1.2 Windows用户界面的构件 67
4.2 Windows程序设计 69
4.2.1 Windows程序设计基础 69
4.2.2 事件驱动编程方法 71
4.2.3 Windows窗口编程 71
4.2.4 匈牙利表示法 73
4.2.5 Windows程序流程分析 74
4.3 消息响应机制 75
4.3.1 事件驱动与消息 75
4.3.2 消息的处理机制 77
4.3.3 消息的种类 77
4.3.4 消息的发送和接收 81
4.3.5 消息映射 83
4.3.6 自定义消息 83
4.4 VC++.NTET与Windows程序设计 84
4.4.1 WinMain函数 84
4.4.2 应用程序类 86
4.4.3 Run成员函数 87
4.4.4 关闭应用程序 87
4.4.5 理解VC工程 88
4.4.6 一个简单实例 89
本章小结 93
第5章 MFC程序设计 94
5.1 微软基础类(MFC)库 94
5.2 MFC中的常用类 95
5.2.1 基本类 95
5.2.2 应用类 96
5.2.3 其他用户界面类 98
5.2.4 绘图类 99
5.2.5 其他MFC类 100
5.3 类的消息机制 102
5.4 MFC的程序流程 104
5.5 MFC的程序实例 104
本章小结 111
第6章 文档/视图模型 112
6.1 文档视图模型概念 112
6.1.1 文档/视图结构 112
6.1.2 SDI与MDI模型 113
6.1.3 文档视图体系的核心类 114
6.1.4 文档视图相互作用 124
6.1.5 使用文档/视图结构的意义 125
6.1.6 文档/视图结构中主要类的作用 126
6.1.7 访问当前活动视图和文档 130
6.2 文档/视图结构程序实例 131
6.2.1 创建应用程序的骨架 131
6.2.2 声明文档的数据对象 131
6.2.3 初始化文档类的数据成员 131
6.2.4 清理文档类的数据成员 132
6.2.5 读写文档-串行化 133
6.2.6 文档显示的实现 136
6.2.7 文档编辑功能的实现 136
6.3 多文档界面窗口 140
6.3.1 MDI与SDI的区别 141
6.3.2 MDI应用的文档的创建与显示 141
6.3.3 多文档视图程序的架构 141
本章小结 145
第7章 对话框和控件 146
7.1 对话框的基本概念 146
7.1.1 模态对话框与非模态对话框 146
7.1.2 MFC对对话框的封装 147
7.1.3 CDialog对话框类 148
7.1.4 CWnd和CWinApp类对于对话框的管理 151
7.1.5 NET对对话框属性的处理 152
7.2 系统预制对话框与标签式对话框 153
7.2.1 系统预制对话框 153
7.2.2 标签式对话框 158
7.3 Windows标准控件 161
7.3.1 静态控件 162
7.3.2 编辑控件 164
7.3.3 按钮控件 169
7.3.4 列表框控件 172
7.3.5 组合框控件 177
7.3.6 滚动条控件 181
7.4 高级控件 183
7.4.1 高级控件的通知消息 184
7.4.2 旋转按钮控件 186
7.4.3 滑尺控件 189
7.4.4 进度条控件 191
7.4.5 树形视图控件 192
7.4.6 列表视图控件 197
7.5 控件通用技术 203
7.5.1 所有的控件都是窗口 203
7.5.2 控件的创建方法 203
7.5.3 访问控件的方法 204
7.5.4 控件及控件对象的删除 205
7.5.5 控件通知消息 205
7.5.6 管理对话框控件的CWnd成员函数 205
7.5.7 标准控件的控件通知消息 206
7.6 在非对话框窗口中使用控件 207
7.6.1 在表单视图中使用控件 207
7.6.2 在工具条和状态栏中使用控件 207
7.6.3 在非对话框窗口中使用控件的实例 208
7.7 控件的运用实例 213
7.7.1 控件面板的创建 213
7.7.2 成员变量的设定 214
7.7.3 程序功能的实现 215
7.8 对话框与控件运用的综合实例 218
7.8.1 对话框创建和显示的一般方法 218
7.8.2 创建对话框类及处理消息 219
7.8.3 对话框模板的设计 219
7.8.4 对话框类的设计 221
7.8.5 对话框的初始化 223
7.8.6 对话框的数据交换机制 223
7.8.7 对话框的运行机制 224
7.8.8 处理控件通知消息 225
7.8.9 非模态对话框的运用 228
本章小结 230
第8章 多线程编程 231
8.1 线程概述 231
8.1.1 进程与线程 231
8.1.2 深入理解线程 231
8.2 线程的编程技术 232
8.2.1 编写线程函数 232
8.2.2 创建一个线程 233
8.2.3 终止线程 233
8.2.4 线程的挂起与恢复 234
8.2.5 设定优先级 235
8.2.6 线程的同步 235
8.2.7 线程间通信 238
8.2.8 线程对共享资源的访问 240
8.3 基于MFC的多线程编程 241
8.3.1 工作者线程 242
8.3.2 用户接口线程编程 242
8.3.3 同步对象的使用 243
8.4 多线程实例 243
8.4.1 程序框架的创建 244
8.4.2 创建CUIThread类 244
8.4.3 添加线程对话框 245
8.4.4 创建工作程序线程 248
8.4.5 测试线程应用程序 251
本章小结 252
第9章 组件技术与ATL 253
9.1 组件技术概述 253
9.2 ActiveX组件技术基本概念 254
9.2.1 ActiveX的由来 254
9.2.2 组件的标准化 255
9.2.3 开发ActiveX控件的方法 255
9.2.4 ActiveX的组件类型 256
9.3 ActiveX组件程序 256
9.3.1 容器应用程序的创建 256
9.3.2 ActiveX控件的创建 261
9.3.3 添加ActiveX控件的方法 262
9.3.4 服务器应用程序的建立 263
9.3.5 利用ATL来创建ActiveX控件 268
9.3.6 ActiveX控件的注册 270
9.4 COM系列技术简介 271
9.4.1 ObiectViewer工具 272
9.4.2 DCOM 272
9.4.3 COM+ 273
9.4.4 NET与COM/COM+的关系 275
9.4.5 NET对COM+的支持 276
9.5 ATL技术 277
9.5.1 什么是ATL 277
9.5.2 ATL基本技术 278
9.5.3 使用ATL编写组件程序 279
9.5.4 ArLServer 289
本章小结 293
第10章 动态链接库编程 294
10.1 动态链接库概述 294
10.1.1 动态链接库的作用 294
10.1.2 动态链接库的优点 295
10.1.3 不同类别的动态链接库 296
10.1.4 动态链接库的选用 296
10.2 普通的DLL程序 296
10.2.1 动态链接库(DLL)结构 297
10.2.2 编写DLL的主要步骤 298
10.2.3 DLL中函数的导出方法 298
10.2.4 使用模块定义文件导出}DLL中的函数 299
10.2.5 使用_declspec(dllexport)导出DLL中的函数 301
10.2.6 DLL的加载与调用方式 302
10.2.7 使用隐含链接 303
10.2.8 使用显式链接 305
10.3 使用MFC扩展动态链接库 307
10.3.1 DLL与MFC扩展DLL的不同之处 307
10.3.2 MFC扩展DLL的示例程序 307
10.3.3 DLL调用时的注意事项 310
本章小结 311
第11章 图形图像编程 312
11.1 图形图像的基本概念 312
11.2 图形设备接口 313
11.2.1 设备描述表 313
11.2.2 窗口视和视口视 315
11.2.3 坐标系统与映射模式 316
11.2.4 绘图工具 317
11.2.5 绘图函数 317
11.3 Windows位图 318
11.3.1 设备无关位图 318
11.3.2 设备相关位图 320
11.3.3 抖动和非抖动颜色 324
11.3.4 位图编程实例 325
11.4 基于NET框架的GDI+编程 331
11.4.1 GDI+ 332
11.4.2 GDI+的新功能 332
11.4.3 GDI+命名空间 332
11.4.4 图形类 335
11.4.5 常见图形对象 335
11.4.6 为命名空间加引用 338
11.4.7 GDI+图形编程实例 338
11.5 图像编程综合实例 340
11.5.1 编写DIB类 340
11.5.2 建构应用程序 345
本章小结 353
第12章 数据库编程 355
12.1 数据库基本概念 355
12.1.1 数据库、DBMS和SQL 355
12.1.2 数据库访问技术 356
12.2 ODBC编程技术 357
12.2.1 ODBC基本概念 357
12.2.2 MFC的主要ODBC类概述 359
12.2.3 CDatabase类 360
12.2.4 CRecordset类 361
12.2.5 CRecordView类 367
12.3 数据库应用的实例 368
12.3.1 注册数据源 368
12.3.2 创建应用程序 370
12.3.3 添加资源和代码 371
12.4 DAO编程技术 377
124.1 什么是DAO 377
12.4.2 DAO与ODBC的异同 377
12.4.3 DAO技术的特点 378
12.4.4 使用DAO设计数据库程序 379
12.5 自动注册DSN和创建表 381
12.5.1 自动注册DSN 381
12.5.2 用ODBC创建表 382
12.5.3 用DAO创建表 383
本章小结 384