第1章 Windows 2000特点及编程基础 1
1.1 Windows 2000特点 1
1.1.1 Windows 2000家族介绍 1
1.1.2 Windows 2000平台概览 3
1.1.3 Windows 2000的设计思想 4
1.1.4 Windows 2000系统性能 5
1.2 Windows程序工作原理 6
1.2.1 理解Windows消息机制 7
1.2.2 协同式多任务与抢先式多任务系统 8
1.3 Windows 2000应用程序设计特点 9
1.4 Windows API和SDK 10
1.4.1 Windows API 10
1.4.2 Windows SDK 11
1.4.3 使用SDK编写Windows应用程序 11
1.5 Windows编程基础知识 13
1.6 面向对象的编程 15
1.7 本章小结 17
2.1.1 Windows应用程序的开发工具 19
2.1.2 选用Visual C++作为Windows 2000编程工具的原因 19
第2章 Visual C和MFC 19
2.1 Visual C++编程简介 19
2.1.3 VC6.0的3种不同版本特性比较 20
2.2 Visual C++可视化集成开发环境 21
2.2.1 项目工作区 22
2.2.2 应用程序向导AppWizard 24
2.2.3 类向导ClassWizard 25
2.2.4 WizardBar 25
2.3 MFC简介 26
2.3.1 MFC历史 26
2.2.5 组件画廊Componet Gallery 26
2.3.2 MFC类库概念和组成 27
2.3.3 MFC的优点 33
2.3.4 用MFC方法实现Hello World程序 33
2.4 消息映射 35
2.4.1 为什么使用消息映射 35
2.4.2 MFC对消息的管理 35
2.5 Windows 2000应用程序组成 39
2.5.1 编写Windows应用程序需要的文件 39
2.5.2 在Windows 2000应用程序中引入资源的好处 40
2.6 本章小结 41
3.1 图形设备接口GDI概述 43
第3章 图形设备接口 43
3.2 设备描述表 44
3.2.1 CDC类 46
3.2.2 CClientDC类 49
3.2.3 CPaintDC 50
3.2.4 CWindowDC类 51
3.3 几个与图形绘制有关的简单数据类型 52
3.3.1 CPoint类 52
3.3.2 CSize类 52
3.3.3 CRect类 52
3.4.1 画笔对象 54
3.4 MFC图形对象 54
3.4.2 画刷对象 59
3.4.3 字体对象 64
3.4.4 位图对象CBitmap 76
3.4.5 调色板对象 80
3.4.6 区域对象 87
3.5 坐标与映射 93
3.5.1 设备坐标与逻辑坐标 93
3.5.2 坐标模式 96
3.6 本章小结 98
4.1 Windows窗口概述 99
4.1.1 窗口类简介 99
第4章 Windows窗口与对话框 99
4.1.2 常见窗口类型 100
4.1.3 CWnd类数据成员及成员函数 101
4.2 Windows窗口操作 107
4.2.1 窗口的创建 107
4.2.2 窗口的显示 108
4.2.3 窗口的注册 109
4.2.5 关闭和销毁窗口 110
4.2.4 激活窗口 110
4.2.6 创建一个不规则形状的窗口 111
4.3 Windows对话框概述 112
4.4 对话框操作 113
4.4.1 对话框模板设计 113
4.4.2 对话框类的设计 115
4.4.3 对话框的初始化 117
4.5 对话框的数据交换机制 118
4.6 模态对话框的运行机制 119
4.7.2 非显式删除非模态对话框对象 120
4.7.1 非模态对话框的特点 120
4.7 非模态对话框 120
4.7.3 非模态对话框对象的打开状态 121
4.8 Windows公用对话框 121
4.8.1 文件选择对话框 122
4.8.2 颜色选择对话框 124
4.8.3 字体选择对话框 127
4.8.4 打印及打印设置对话框 130
4.8.5 查找及替换对话框 135
4.9 属性表 138
4.9.1 属性表的创建 139
4.9.2 属性表的运行机制 140
4.10 本章小结 142
第5章 Windows新型通用控件 143
5.1 新型通用控件的消息机制 144
5.2 新型通用控件详解 146
5.2.1 进度条控件 146
5.2.2 滑块控件 149
5.2.3 调节按钮控件 154
5.2.4 多功能编辑控件 159
5.2.5 图像列表控件 162
5.2.6 表头控件 166
5.2.7 列表控件和列表视图 169
5.2.8 树形控件和树形视图 177
5.2.9 标签控件 185
5.3 控件栏 188
5.3.1 工具栏 188
5.3.2 状态栏 192
5.4 本章小结 194
6.1 传统通用控件的消息机制 197
第6章 Windows传统通用控件 197
6.2 静态控件 198
6.3 编辑框 201
6.4 列表框 207
6.5 组合框 214
6.6 按钮类控件 216
6.6.1 命令按钮 221
6.6.2 组框 225
6.6.3 单选按钮 226
6.6.4 复选框 227
6.6.5 位图按钮 227
6.7 滚动条 229
6.8 本章小结 233
第7章 文档与视图 235
7.1 文档/视图结构概述 235
7.2 使用文档/视图结构的优点 236
7.3 SDI与MDI 236
7.4 框架、文档模板、文档与视图 237
7.4.1 框架窗口 237
7.4.2 文档模板 237
7.4.3 文档 238
7.4.4 视图 242
7.4.5 文档、视图与框架间的具体关系 244
7.5 使用集合类管理数据 244
7.6 打印 247
7.6.1 屏幕输出与打印 247
7.6.2 实现打印 248
7.7 文档/视图/框架综合程序示例 248
7.8 本章小结 281
第8章 用户模块和钩子函数 283
8.1 Windows 2000静态链接库 283
8.1.1 静态/动态链接库综述 283
8.1.2 创建静态链接库 284
8.2 Windows2000动态链接库 286
8.2.1 动态链接库概述 286
8.2.2 创建动态链接库 289
8.2.3 加载动态链接库 295
8.2.4 DLL程序示例 299
8.3 钩子函数 302
8.3.1 钩子函数概述 302
8.3.2 钩子函数相关操作 303
8.3.3 三用钩子函数 305
8.3.4 钩子函数实例程序 307
8.4 本章小结 327
第9章 进程与线程 329
9.1 多任务 329
9.1.1 多任务概述 329
9.1.2 协同式多任务 330
9.1.3 抢先式多任务 331
9.2 进程 331
9.2.1 进程概述 331
9.2.2 WinMain函数初探 332
9.2.3 创建进程 333
9.2.4 终止进程 338
9.2.5 进程间的通信方式 340
9.3 线程 344
9.3.1 线程概述 344
9.3.2 创建线程 344
9.3.3 终止线程 347
9.3.4 有关线程的其他重要函数 347
9.3.5 线程间的通信方式 349
9.4 例程序—列举当前系统进程 352
9.5 本章小结 379
10.1.1 多线程与同步对象 381
第10章 多线程 381
10.1 多线程编程综述 381
10.1.2 线程同步的原因 382
10.1.3 等待函数 383
10.2 Win32 API下临界区编程 385
10.2.1 创建临界区对象 387
10.2.2 临界区对象相关操作函数 388
10.3 MFC锁类 389
10.3.1 CSingleLock类 389
10.3.2 CMultiLock类 391
10.4.1 临界区类重要成员函数 393
10.4 MFC临界区类 393
10.4.2 使用临界区类对象 394
10.5 Win32 API下互斥量编程 395
10.5.1 创建互斥量 395
10.5.2 使用互斥量 396
10.6 MFC互斥量类 397
10.6.2 使用互斥量类对象 398
10.7 Win32 API下信号量编程 398
10.6.1 互斥量类重要成员函数 398
10.7.1 创建信号量对象 399
10.7.2 信号量对象相关操作函数 399
10.8 MFC信号量类 400
10.8.1 信号量类重要成员函数 400
10.8.2 使用信号量类 401
10.9 Win32 API下事件编程 401
10.9.1 创建事件对象 401
10.9.2 事件对象相关操作函数 402
10.9.3 使用事件对象的程序示例 403
10.10 综合应用程序示例 409
10.11 本章小结 431
第11章 Win32文件系统与内存管理 433
11.1 利用MFC类进行文件处理 433
11.1.1 文件处理概述 433
11.1.2 CFile类 434
11.1.3 CStdioFile类 438
11.1.4 CMemFile类 439
11.2 利用Win32 API进行文件处理 440
11.2.1 文件的创建 440
11.2.2 文件的读写 443
11.2.3 复制文件 445
11.2.4 移动文件 446
11.2.5 删除文件 447
11.2.6 访问文件属性 447
11.2.7 目录操作 452
11.3 内存管理 457
11.3.1 内存管理的基本概念 457
11.3.2 32位应用程序地址空间中的内存分配和管理 458
11.3.3 Win32内存管理模式 461
11.3.4 内存映射文件 465
11.4 本章小结 465
12.1.1 数字音频 467
第12章 多媒体程序设计 467
12.1 多媒体基础知识 467
12.1.2 数字视频 468
12.2 媒体控制接口 468
12.2.1 MCI的控制方式 469
12.2.2 MCI的设备及设备控制 469
12.2.3 API函数 484
12.3 程序设计实例 486
12.4 本章小结 543
13.1.1 什么是COM 545
13.1 基本概念综述 545
第13章 COM/OLE/ActiveX技术及应用 545
13.1.2 开发COM组件的方法 547
13.1.3 OLE的具体概念 548
13.1.4 ActiveX全接触 550
13.1.5 ATL综述 557
13.2 改进接口详解 560
13.2.1 ActiveX 文档接口 560
13.2.2 ActiveX 容器接口 562
13.2.3 ActiveX 控件的属性、方法和事件 563
13.3 创建ActiveX控件 567
13.4 使用ATL开发COM应用程序 570
13.5 COM应用程序示例 573
13.6 本章小结 629
第14章 DirectX程序设计 631
14.1 DirectX基础 631
14.1.1 DirectX的特点 631
14.1.2 COM技术基础 632
14.1.3 DirectX的主要组成部分 634
14.2 DirectDraw 635
14.2.2 DirectDraw的对象类型 637
14.2.1 DirectDraw结构 637
14.2.3 硬件操作层和硬件模拟层 641
14.2.4 协作级别 642
14.2.5 显示模式 643
14.2.6 图面和位转换函数 644
14.3 DirectSound 648
14.3.1 DirectSound概述 648
14.3.2 DirectSound配置 649
14.4 DirectX程序实例 651
14.5 本章小结 683
15.1.1 OpenGL简介 685
第15章 OpenGL编程 685
15.1 OpenGL综述 685
15.1.2 OpenGL的主要功能 687
15.2 OpenGL编程基础 688
15.2.1 颜色模式 688
15.2.2 3D变换 690
15.2.3 OpenGL曲线/面的生成 694
15.3 利用OpenGL绘图 700
15.3.1 绘图步骤 700
15.3.3 OpenGL绘图特殊效果 705
15.3.2 创建Windows 2000下OpenGL应用程序的要点 705
15.4 OpenGL重要函数 716
15.5 三维图形及动画软件开发流程 723
15.6 OpenGL编程示例 724
15.7 本章小结 766
第16章 Windows Socket程序设计 769
16.1 Windows Socket的历史和特点 769
16.2 套接字程序设计基础 772
16.2.1 通信和客户端/服务器模型 772
16.2.2 公用套接字结构 773
16.3.1 套接字的API函数 775
16.2.3 字节顺序转换 775
16.3 API程序设计 775
16.3.2 使用API编写套接字应用程序 792
16.3.3 套接字API应用程序示例 794
16.4 Windows Sockets MFC程序设计 805
16.4.1 MFC对WinSock的封装 805
16.4.2 使用MFC编写套接字应用程序 805
16.4.3 套接字MFC应用程序示例 816
16.5 本章小结 830
17.1 TAPI背景 831
第17章 利用TAPI开发电话技术应用 831
17.2 TAPI基础 832
17.2.1 TAPI基本概念 832
17.2.2 TAPI原理 834
17.2.3 TAPI通信过程 835
17.2.4 数据发送与传输 836
17.3 TAPI电话服务 838
17.3.1 TAPI辅助电话服务 838
17.3.2 全电话API 839
17.4 TAPI编程示例 845
17.5 本章小结 861
第18章 利用MAPI编写信报应用程序 863
18.1 MAPI背景 863
18.2 MAPI编程2接口 864
18.2.1 简单MAPI 864
18.2.2 通用消息调用 875
18.3 利用MAPI编写电子邮件程序 876
18.3.1 初始化MAPI 876
18.3.2 发送电子邮件 879
18.3.3 阅读电子邮件 882
18.4 本章小结 884
第19章 WinInet程序设计 885
19.1 WinInet基础 885
19.2 MFC WinInet中的类 886
19.2.1 用于管理Internet连接和会话的类 886
19.2.2 用于文件管理的类 900
19.3 WinInet应用程序设计 915
19.3.1 HTTP客户端应用程序的创建过程 915
19.3.2 创建FTP应用程序 915
19.4 本章小结 916
附录 常用的Windows扩展套接字API函数 917