第一部分 Windows API编程基础 3
第1章 Wndows API介绍 3
1.1 Visual C++与Windows API 3
1.2 初识Windows应用程序 4
1.3 使用向导建立Win32应用程序 9
1.4 程序架构 10
1.4.1 WinMain函数 10
1.4.2 MyregisterClass函数 12
1.4.3 InitInstance函数 13
1.4.4 WndProc函数 14
1.4.5 运行结果 15
1.5 编译和调试 16
1.5.1 编译错误 16
1.5.2 运行错误 18
1.6 本章小结 24
第2章 Win32消息处理 26
2.1 键盘输入消息 26
2.2 鼠标输入消息 27
2.3 定时器的使用 29
2.4 本章小结 31
第3章 Win32 API绘图 32
3.1 窗口属性的设置 32
3.2 设备内容 35
3.3 显示文本 35
3.4 画笔与画刷 37
3.4.1 画笔创建 37
3.4.2 画刷的创建 39
3.5 绘制位图 41
3.5.1 加载位图 41
3.5.2 建立与窗口DC兼容的内存DC 43
3.5.3 选用位图对象SelectObject 43
3.5.4 使用BitBlt函数进行贴图操作 43
3.6 双缓冲技术 45
3.7 本章小结 50
第二部分 数据结构编程实例 53
第4章 小试牛刀:数字时钟 53
4.1 本章目标 53
4.2 编程思路 53
4.2.1 获取系统时间 53
4.2.2 使用位图显示数字 54
4.2.3 定时器设置 55
4.3 程序实现 55
4.4 本章小结 60
第5章 小试牛刀:推箱子 61
5.1 本章目标 61
5.2 编程思路 61
5.2.1 地图数据的加载 61
5.2.2 地图数据更新 62
5.2.3 游戏成功判断 63
5.3 程序实现 64
5.4 本章小结 70
第6章 线性表的应用:贪食蛇游戏 71
6.1 知识点回顾 71
6.1.1 顺序链表存储结构 71
6.1.2 顺序链表的创建 71
6.1.3 顺序链表的遍历输出 72
6.1.4 顺序链表的插入 72
6.1.5 顺序链表的删除 72
6.2 本章目标 73
6.3 编程思路 73
6.3.1 建立贪食蛇结构体Snake 73
6.3.2 产生食物 73
6.3.3 贪食蛇运动控制 74
6.3.4 定时器 74
6.4 程序实现 76
6.5 本章小结 82
第7章 线性表的应用:打飞机游戏 83
7.1 知识点回顾 83
7.1.1 链式链表的存储结构 83
7.1.2 链式链表的创建 83
7.1.3 链式链表的遍历输出 84
7.1.4 链式链表的插入 84
7.1.5 链式链表的删除 85
7.2 本章目标 86
7.3 编程思路 86
7.3.1 定义飞机结构体和list双向链表 88
7.3.2 增加飞机 88
7.3.3 绘制飞机和背景 89
7.3.4 定时器的设置 90
7.3.5 添加鼠标击中飞机功能 91
7.4 程序实现 92
7.5 本章小结 97
第8章 栈的应用:计算器 98
8.1 知识点回顾 98
8.1.1 堆栈的顺序存储结构 98
8.1.2 堆栈的初始化 98
8.1.3 入栈 99
8.1.4 出栈 99
8.1.5 获取栈顶数据 99
8.2 本章目标 100
8.3 编程思路 100
8.4 程序实现 107
8.5 本章小结 115
第9章 栈的应用:迷宫求解 116
9.1 知识点回顾 116
9.2 本章目标 117
9.3 编程思路 117
9.3.1 地图设计 117
9.3.2 迷宫核心算法(图的深度优先遍历) 118
9.4 程序实现 119
9.5 本章小结 128
第10章 树的应用:二叉树可视化 129
10.1 知识点回顾 129
10.1.1 二叉树存储结构 129
10.1.2 二叉树的构造 129
10.1.3 二叉树遍历算法 130
10.2 本章目标 131
10.3 编程思路 131
10.3.1 二叉树的可视化输出 131
10.4 程序实现 132
10.5 本章小结 138
第11章 树的应用:计算器 139
11.1 知识点回顾 139
11.2 本章目标 139
11.3 编程思路 139
11.3.1 创建二叉树 139
11.3.2 表达式求值 141
11.3.3 程序实现 142
11.4 本章小结 149
第12章 图的应用:迷宫求解 150
12.1 知识点回顾 150
12.2 本章目标 150
12.3 编程思路 151
12.4 程序实现 152
12.5 本章小结 158
第13章 图的应用:连连看游戏 159
13.1 知识点回顾 159
13.2 本章目标 159
13.3 编程思路 160
13.3.1 格子连通情况 160
13.3.2 寻路算法 160
13.4 程序实现 164
13.5 本章小结 174
第14章 排序的应用:扑克纸牌排序 176
14.1 知识点回顾 176
14.2 本章目标 177
14.3 编程思路 177
14.3.1 纸牌编号 177
14.3.2 纸牌选取 177
14.3.3 纸牌排序 179
14.4 程序实现 179
14.5 本章小结 184
第15章 排序的应用:图像中值去噪滤波 185
15.1 知识点回顾 185
15.2 本章目标 185
15.3 编程思路 185
15.4 程序实现 187
15.5 本章小结 192
第16章 综合实例:八数码 193
16.1 知识点回顾 193
16.2 本章目标 193
16.3 编程思路 193
16.4 程序实现 196
16.5 本章小结 204
第三部分 附 录 207
附录A Win32 API扩展功能 207
A.1 窗口界面换肤 207
A.2 播放声音 208
A.3 添加自定义对话框 211
A.4 添加按钮控件 213
附录B “赛车突围”益智游戏 215
附录C “俄罗斯方块”游戏 216
附录D 分形图形——树 217