第一章 Windows 95概述 1
1.1 从Windows 3.x到Windows 95 1
1.1.1 Windows 3.x的弱点 1
1.1.2 从虚拟多任务到多任务 1
1.1.3 维持与Windows 3.x、DOS的兼容性 2
1.2 Windows 95的目标和功能 2
1.3 Windows 95的结构 3
1.4 与其他操作系统的比较 4
1.4.1 Windows 95与Windows 3.x的比较 4
1.4.2 Windows 95与Windows NT的比较 4
1.5 小结 4
第二章 Windows 95编程基础 5
2.1 常用术语 5
2.1.1 用户界面 5
2.1.2 窗口 5
2.1.3 图标和位图 6
2.1.4 菜单、工具栏、状态栏和对话框 6
2.2 Windows 95 API 7
2.3 命名规则 7
2.3.1 函数命名规则 7
2.3.2 变量命名规则 8
2.4 Windows 95应用程序结构 8
2.4.1 Windows 95应用程序的基本结构 8
2.4.2 WinMain函数 11
2.4.3 窗口函数 18
2.5 小结 19
第三章 消息和消息框 20
3.1 消息及其处理 20
3.1.1 WM_CHAR消息 20
3.1.2 WM_LBUTTONDOWN和WM_RBUTTONDOWN消息 23
3.1.3 WM_PAINT消息 25
3.1.4 WM_HSCROLL和WM_VSCROLL消息 27
3.1.5 WM_TIMER消息 28
3.2 消息框及其处理 29
3.3 编程实例 30
3.4 小结 35
第四章 菜单 36
4.1 菜单与菜单项 36
4.2 定义菜单 36
4.2.1 资源描述文件 36
4.2.2 创建菜单 37
4.3 在应用程序中访问菜单 38
4.3.1 创建窗口类时指定菜单 39
4.3.2 创建窗口时指定菜单 39
4.4 处理菜单输入 40
4.5 从应用程序中控制菜单 41
4.5.1 使菜单项有效或无效 41
4.5.2 检取和清除菜单项 41
4.5.3 其他菜单项操作 42
4.6 增加菜单加速键 42
4.6.1 创建加速键表 43
4.6.2 为菜单项增加加速键文字 43
4.6.3 装入加速键表 44
4.7 建立动态菜单 45
4.8 范例程序 46
4.9 小结 52
第五章 对话框 53
5.1 对话框的使用 53
5.1.1 控件 53
5.1.2 模态对话框 53
5.1.3 非模态对话框 54
5.2 对话框处理 54
5.2.1 对话框窗口函数 54
5.2.2 显示对话框 55
5.2.3 创建对话框 55
5.2.4 范例程序Ⅰ 58
5.3 使用非模态对话框 62
5.3.1 处理非模态对话框与处理模态对话框的区别 63
5.3.2 范例程序2 64
5.4 小结 69
第六章 图标、光标和位图 70
6.1 图标 70
6.1.1 图标的定义 70
6.1.2 使用系统提供的图标 70
6.1.3 使用自定义的图标 70
6.1.4 在对话框中显示图标 73
6.2 光标 73
6.2.1 使用系统光标形状 73
6.2.2 使用自定义的光标形状 74
6.3 位图 76
6.3.1 创建位图 76
6.3.2 定义位图资源 77
6.3.3 显示位图 77
6.4 范例程序 80
6.5 小结 84
第七章 绘图与文本输出 85
7.1 设备文本 85
7.1.1 访问输出设备 85
7.1.2 设备文本属性 87
7.2 虚拟窗口 87
7.2.1 虚拟窗口方法 87
7.2.2 虚拟窗口的实现过程 87
7.3 绘图 90
7.3.1 坐标系 90
7.3.2 画图工具 90
7.3.3 图形处理 92
7.3.4 绘图范例程序 95
7.3.5 其他绘图函数 101
7.4 映射模式 103
7.4.1 约束映射模式 103
7.4.2 非约束映射模式 104
7.4.3 设置映射模式 105
7.4.4 定义窗口区域 105
7.4.5 定义视口 106
7.4.6 设置视口原点 106
7.4.7 映射模式范例程序 106
7.5 文本处理 114
7.5.1 设置文本和背景颜色 114
7.5.2 设置背景显示模式 114
7.5.3 获取文字属性 115
7.5.4 使用字体 121
7.6 小结 130
第八章 标准控件 131
8.1 列表框 131
8.1.1 列表框的定义 131
8.1.2 列表框风格 132
8.1.3 列表框处理 132
8.1.4 列表框的其他内容 139
8.2 编辑框 141
8.2.1 编辑框的创建 141
8.2.2 编辑框处理 142
8.3 滚动条 142
8.3.1 创建滚动条 143
8.3.2 处理滚动条 143
8.3.3 滚动条处理代码示例 145
8.4 复选框 146
8.4.1 创建复选框 146
8.4.2 处理复选框消息 148
8.4.3 复选框切换 149
8.4.4 复选框初始化 149
8.5 静态控件 150
8.5.1 LTEXT控件 150
8.5.2 CTEXT控件 150
8.5.3 RTEXT控件 150
8.5.4 GROUPBOX控件 151
8.6 单选按钮 151
8.6.1 创建单选按钮 151
8.6.2 处理单选按钮消息 152
8.6.3 其他处理内容 153
8.6.4 示例程序 153
8.7 标准控件补充说明 160
8.7.1 标准控件的创建 160
8.7.2 标准控件的处理 162
8.8 小结 162
第九章 公用控件 163
9.1 公用控件的种类 163
9.2 公用控件使用基础 164
9.2.1 公用控件的头文件 164
9.2.2 公用控件的初始化 164
9.2.3 公用控件的使用方法 164
9.3 工具栏 165
9.3.1 工具栏创建函数及其说明 165
9.3.2 工具栏位图的创建 167
9.3.3 工具栏处理过程 167
9.4 工具栏提示 169
9.4.1 工具栏提示的创建 169
9.4.2 工具栏提示产生的消息及其结构 169
9.4.3 工具栏提示处理 170
9.4.4 范例程序 171
9.5 上下控件 177
9.5.1 上下控件的创建与使用 177
9.5.2 上下控件消息 178
9.5.3 使用上下控件 179
9.5.4 旋转控件 180
9.5.5 旋转控件的使用 180
9.6 轨道条控件 181
9.6.1 轨道条风格 181
9.6.2 发送轨道条消息 182
9.6.3 处理轨道条通知消息 182
9.6.4 轨道条创建 183
9.6.5 轨道条的使用 183
9.7 进展条控件 184
9.7.1 发送进展条消息 184
9.7.2 进展条的创建 185
9.8 状态栏控件 185
9.8.1 创建状态栏 185
9.8.2 状态栏消息 185
9.8.3 使用状态栏 186
9.9 应用范例 188
9.10 制表控件 196
9.10.1 创建制表控件 196
9.10.2 发送制表控件消息 197
9.10.3 制表通知消息 198
9.11 树形查看控件 199
9.11.1 创建树形查看控件 199
9.11.2 发送树形查看消息 199
9.11.3 树形查看通知消息 202
9.12 公用对话框 203
9.13 小结 204
第十章 文件输入和输出 205
10.1 Windows 3.x的基本文件操作 205
10.2 Windows 95文件操作特点 206
10.2.1 基本操作 206
10.2.2 长文件名 206
10.2.3 文件时间 206
10.3 I/O函数的详细讨论 207
10.3.1 CreateFile()函数 207
10.3.2 ReadFile()和WriteFile()函数 210
10.3.3 SetFilePointer()函数 211
10.4 文件加锁和反加锁 212
10.5 有关文件的其他信息 213
10.5.1 获取文件属性 213
10.5.2 设置文件属性 214
10.5.3 获取文件大小 214
10.5.4 获取文件类型 215
10.5.5 获取文件的所有信息 215
10.5.6 获取文件全名 216
10.5.7 获取驱动器信息 216
10.5.8 获取卷册信息 217
10.5.9 创建临时文件 218
10.6 文件监视 218
10.7 GetOpenFileName()和GetSaveFileName()函数 220
10.8 应用范例 223
10.9 小结 231
第十一章 多进程和多线程 232
11.1 多进程 232
11.1.1 进程的概念 232
11.1.2 创建一个进程 232
11.1.3 终止一个进程 234
11.1.4 多进程的需求 235
11.1.5 多进程范例程序 235
11.2 多线程 243
11.2.1 多线程的概念 243
11.2.2 创建一个线程 244
11.2.3 终止一个线程 244
11.2.4 挂起和恢复一个线程 245
11.2.5 多线程的需求 245
11.2.6 多线程范例程序 246
11.3 同步 255
11.3.1 同步的场合 255
11.3.2 同步对象的类型 256
11.3.3 使用信号灯实现同步 257
11.3.4 其他同步机制函数 261
11.4 小结 261
第十二章 动态链接库 262
12.1 动态链接库的概念 262
12.2 Windows 3.x动态链接库范例程序 263
12.3 Windows 95与Windows 3.x动态链接库的区别 267
12.3.1 调用DLL中的函数 267
12.3.2 可执行文件的DEF文件 269
12.4 动态链接库的建立 269
12.4.1 库模块定义文件 269
12.4.2 DLL初始化 271
12.4.3 共享数据 273
12.5 小结 275
第十三章 内存管理 276
13.1 内存寻址模式 276
13.2 全局堆和局部堆 277
13.2.1 局部堆 277
13.2.2 全局堆 278
13.3 使用C语言内存分配函数 280
13.4 堆内存 280
13.5 内存映像文件 281
13.6 虚拟内存 281
13.7 小结 281
第十四章 在Windows 95上实现其他功能 283
14.1 动态数据交换 283
14.1.1 基本概念 283
14.1.2 DDE消息 285
14.1.3 DDE管理库(DDEML) 286
14.2 对象链接和嵌入 290
14.2.1 部件对象模型 290
14.2.2 统一格式数据传输 291
14.2.3 复合文档 292
14.2.4 OLE自动化 292
14.2.5 OLE控件 293
14.3 多媒体 294
14.3.1 多媒体数据格式 294
14.3.2 播放函数 295
14.3.3 多媒体声音服务 295
14.3.4 多媒体控制接口 295
14.3.5 范例 296
14.4 网络和Internet 303
14.4.1 编程接口 303
14.4.2 Internet 304
14.5 ODBC 306
14.5.1 ODBC体系结构 306
14.5.2 访问数据库 307
14.6 小结 311