1.1 概述 1
第一章 简介 1
1.2 Windows与MS-DOS 2
1.3 Windows的精髓 2
1.4 编写Windows应用程序的原则 13
1.5 Windows应用程序的开发步骤 13
1.6 Windows应用程序的组成 19
1.6.1 模块定义文件 19
1.6.2 制作文件 20
1.6.3 源文件 22
1.6.4 Windows数据类型及书写约定 23
1.6.6 登录窗口类 26
1.6.5 WinMain函数 26
1.6.7 创建和显示窗口 28
1.6.8 消息循环 30
1.6.9 窗口过程中消息的处理 31
1.7 Windows程序设计难点 34
1.7.1 消息的派生 34
1.7.2 队列消息与非队列消息 35
1.7.3 占先式多任务作业 36
第二章 Windows中的内存管理 37
2.1 分段体系结构 38
2.1.1 近程指针和远程指针 38
2.1.2 保护模式 39
2.2 Windows中的内存组织 40
2.2.1 固定段和可移动段 41
2.2.2 可抛弃段 42
2.2.3 全局内存布局 42
2.2.4 局部内存 43
2.3 代码段和数据段 44
2.3.1 内存模式 44
2.3.2 多个代码段 45
2.3.3 压缩模式和大模式 46
2.3.4 避免移动时产生问题 47
2.3.5 程序段属性 48
2.4.1 锁定内存块 49
2.4 在程序内分配内存 49
2.4.2 简单实例 50
2.4.3 全局内存分配函数 51
2.4.4 其他全局内存函数 53
2.4.5 使用可抛弃的全局内存 54
2.4.6 巨型全局内存块 55
2.4.7 局部内存分配 56
2.4.8 其他局部内存分配函数 58
2.4.9 锁定用户自己的数据段 58
2.4.10 内存分配的简单方法 59
2.5 内存分配举例 60
2.4.11 C语言内存分配函数的使用 60
第三章 键盘、鼠标和计时器接口 66
3.1 输入消息 66
3.2 键盘输入 66
3.2.1 键盘消息 66
3.2.2 字符消息 67
3.2.3 键盘接口程序 68
3.3 鼠标输入 72
3.3.1 鼠标消息 73
3.3.2 鼠标接口程序 74
3.4.1 计时器消息 78
3.4 计时器输入 78
3.4.2 计时器接口程序 79
第四章 输出 84
4.1 设备环境 84
4.1.1 显示环境类型 86
4.2 WM_PAINT消息 87
4.2.1 起源 87
4.2.2 WM_PAINT消息的处理 87
4.3 输出函数 89
4.3.1 文本函数 89
4.3.2 基本图形函数举例 95
4.4 在程序中使用绘图工具 104
4.4.1 画笔 105
4.4.2 刷子 106
第五章 字体及文本输出 112
5.1 字体的特征 112
5.1.1 字符集(character set) 112
5.1.2 字符单元(character cell) 113
5.1.3 字体种类 113
5.1.4 字体族(font family)及字体面(typefsce) 114
5.2 系统字体 116
5.3 字体参数 116
5.4 逻辑字体 118
5.5 枚举字体 120
5.5.1 WIN.INI中的[TrueType]部分 135
5.6 TrueType字体 135
5.5.2 TrueType字体参数 137
5.5.3 与TrueType字体有关的结构及函数 138
5.7 TrueType字体应用实例 143
5.8 文本输出函数 151
第六章 打印机输出 155
6.1 简单的打印机输出 155
6.2 打印的原理 162
6.3 PeekMessage函数 163
6.4 结束过程(abort procedure) 164
7.1 GDI概述 173
第七章 图形设备接口(GDI) 173
7.2 设备环境 174
7.2.1 获取设备环境句柄 174
7.2.2 设备环境信息 176
7.2.3 设备的大小 187
7.2.4 获取颜色信息 188
7.2.5 保存设备环境 189
7.3 映射方式 190
7.3.1 设备坐标和逻辑坐标 191
7.3.2 设备坐标系统 191
7.3.3 窗口和视口 192
7.3.4 MM_TEXT映射方式 193
7.3.5 度量映射方式 194
7.3.6 MM_ISOTROPIC和MM_ANISOTROPIC 196
7.3.7 映射方式实例 200
第八章 编制图形应用程序 205
8.1 画点 205
8.2 画线 205
8.2.1 备用画笔 207
8.2.2 创建、选择和删除画笔 208
8.2.3 避免与设备相关 210
8.2.4 填充空隙 211
8.2.5 绘图方式 211
8.2.6 ROP2程序 212
8.2.7 ROP2与颜色 216
8.3 区域填充 217
8.3.1 用刷子填充 222
8.3.2 刷子和位图 224
8.3.3 创建和使用位图刷子 225
8.3.4 调整刷子原点 228
8.4 矩形、区域和剪取 230
8.4.1 矩形函数 230
8.4.2 创建区域 231
8.4.3 矩形与区域的剪取 232
8.4.4 剪取区域实例 233
8.5 其他GDI函数 237
8.6 演示程序 241
第九章 调色板 246
9.1 逻辑调色板与颜色 246
9.2 使用逻辑调色板 246
9.3 色彩演示程序 248
第十章 位图 257
10.1 内存设备环境 257
10.2 建立设备相关的位图 260
10.3 建立位图刷子 262
10.4 设备无关位图(DIB)的格式 267
10.5.1 PatBlt函数 270
10.5 功能强大的PatBlt及BitBlt 270
10.5.2 BitBlt函数 271
10.6 StretchBlt函数 272
第十一章 图元文件(METAFILE) 281
11.1 使用图元文件 281
11.2 图元文件的其他特征 290
第十二章 Windows文件管理 292
12.1 Windows下的DOS文件管理 292
12.1.1 打开文件 292
12.1.5 设置文件指针 294
12.1.4 写文件 294
12.1.3 读文件 294
12.1.2 关闭文件 294
12.1.6 文件访问实例 295
12.2 初始化文件 305
12.2.1 标准初始化文件 305
12.2.2 建立自己的初始化文件 307
12.2.3 “午餐”实例程序 307
第十三章 资源 317
13.1 资源概述 317
13.2 图标 318
13.6 菜单 322
13.3 位图和字体 326
13.4 光标 326
13.5 字符串 331
13.6.1 修改菜单 334
13.6.2 浮动的弹出式菜单 335
13.6.3 定义选中标记 335
13.6.4 菜单程序实例 336
13.7 加速键 345
13.8 子窗口控件 346
13.8.1 作为独立子窗口的控件 348
13.8.2 控件类 349
13.9 滚动条 367
13.9.2 范围与位置 368
13.9.1 滚动条的定义 368
13.9.3 滚动条消息 369
13.9.4 滚动 369
13.9.5 键盘支持 370
13.10 对话框 370
13.10.1 控件 370
13.10.2 对话框的创建 372
13.10.3 对话框的类型 374
13.10.4 对话框例程 374
13.10.5 激活对话框 375
13.10.6 对话框程序实例 376
13.11 消息框 385