第1章 Windows程序设计基础 1
1.1 Windows概述 1
1.1.1 Windows的发展历史 1
1.1.2 Windows的技术特点 2
1.2 Windows程序特点 3
1.2.1 程序组成 3
1.2.2 数据类型 4
1.2.3 匈牙利命名法 6
1.2.4 Windows消息 7
1.2.5 运行模式 7
1.3 简单的Windows程序介绍 8
1.3.1 开始之前 9
1.3.2 WinMain函数 9
1.3.3 注册窗口类 10
13.4 建立窗口 12
1.3.5 窗口函数 13
1.3.6 窗口内的输出 14
1.4 上机步骤 15
1.4.1 进入开发环境 15
1.4.2 新建项目 16
1.4.3 修改项目选项 17
1.4.4 添加程序文件 17
1.4.5 编辑程序 17
1.4.6 调试运行 17
1.5 小结 18
1.6 练习题 18
第2章 MFC程序设计基础 19
2.1 MFC概述 19
2.1.1 MFC与应用程序框架 19
2.1.2 MFC的组成 19
2.1.3 MFC中的类 20
2.2 MFC程序的特点 21
2.2.1 MFC与消息处理 21
2.2.2 运行模式 21
2.3 简单的MFC程序 22
2.3.1 开始之前 22
2.3.2 派生应用程序类 23
2.3.3 派生窗口类 23
2.3.4 建立窗口 24
2.3.5 加入消息映射 24
2.3.6 建立MFC应用程序对象 25
2.4 上机步骤 25
2.4.1 建立项目 25
2.4.2 修改项目属性 26
2.4.3 调试运行 26
2.5 使用资源 26
2.5.1 建立图标资源 26
2.5.2 在程序中使用图标资源 28
2.6 小结 28
2.7 练习题 29
第3章 常用MFC通用类 30
3.1 CRect、CPoint、CSize类 30
3.1.1 CRect类 30
3.1.2 CPoint类 30
3.1.3 CSize类 30
3.2 CString类 31
3.2.1 创建字符串 31
3.2.2 访问字符串数据 32
3.2.3 字符串的比较 33
3.2.4 子串函数 34
3.2.5 字符串处理函数 35
3.3 集合类 36
3.3.1 列表类CList 36
3.3.2 数组类CArray 39
3.3.3 映射类CMap 41
3.4 时间处理类 42
3.4.1 COleDateTime类 42
3.4.2 COleDateTimeSpan类 46
3.5 异常处理类 47
3.5.1 异常处理类的使用 47
3.5.2 MFC异常处理类简介 48
3.6 小结 49
3.7 练习题 49
第4章 文档视图程序 51
4.1 概述 51
4.2 文档 51
4.2.1 单文档对象程序 51
4.2.2 多文档对象程序 51
4.2.3 多文档类型程序 52
4.3视 53
4.3.1 一个文档对象对应一个视对象 53
4.3.2 一个文档对象对应多个视对象 53
4.3.3 一个文档对应多个视类型 54
4.4 窗口框架 54
4.5 文档模板 55
4.6 建立标准单文档程序框架 55
4.6.1 新建项目 56
4.6.2 修改项目选项 56
4.6.3 完成向导 59
4.6.4 运行结果 59
4.7 单文档程序框架分析 60
4.7.1 Stdafx.h 60
4.7.2 Stdafx.cpp 61
4.7.3 0401.h 61
4.7.4 0401.cpp 62
4.7.5 MainFrm.h 66
4.7.6 MainFrm.cpp 67
4.7.7 TextDoc.h 70
4.7.8 TextDoc.cpp 71
4.7.9 TextView.h 73
4.7.10 TextView.cpp 75
4.8 小结 77
4.9 练习题 77
第5章 绘图输出 79
5.1 GDI与MFC 79
5.1.1 设备环境类 79
5.1.2 GDI对象类 80
5.2 绘制图形 81
5.2.1 开始绘图 81
5.2.2 更改画笔 84
5.2.3 使用画刷 85
5.2.4 使用位图 86
5.3 输出文本 91
5.3.1 文本输出函数 91
5.3.2 更改文本颜色 92
5.3.3 更改字型、字体 94
5.4 坐标与坐标模式 97
5.4.1 坐标模式 98
5.4.2 MM-ANISOTROPIC坐标模式 99
5.4.3 MM-ISOTROPIC坐标模式 101
5.4.4 平移坐标 102
5.4.5 修改坐标方向 102
5.5 小结 104
5.6练习题 105
第6章 用户输入 106
6.1 鼠标和键盘 106
6.1.1 鼠标消息 106
6.1.2 键盘消息 110
6.2 使用菜单 111
6.2.1 编辑菜单 112
6.2.2 处理菜单命令 113
6.2.3 修改菜单状态 114
6.2.4 使用弹出式菜单 117
6.3 小结 118
6.4 练习题 119
第7章 工具栏与状态栏 120
7.1 工具栏 120
7.1.1 编辑工具栏 120
7.1.2 处理工具栏命令 121
7.1.3 工具栏按钮状态 124
7.1.4 自定义工具栏 124
7.2 状态栏 129
7.2.1 默认状态栏 129
7.2.2 操作状态栏 131
7.3 小结 136
7.4 练习题 136
第8章 使用文件 137
8.1 CFile类 137
8.1.1 文件的建立、打开和关闭 137
8.1.2 文件的读、写 139
8.1.3 文件内容的定位与锁定 140
8.1.4 获取、设置文件状态 141
8.2 序列化 142
8.2.1 序列化的概念 142
8.2.2 Serialize函数 142
8.2.3 CArchive类 143
8.2.4 序列化应用实例 145
8.3 文件管理 148
8.3.1 文件操作 148
8.3.2 目录操作 149
8.4 小结 150
8.5 练习题 150
第9章 常用消息 151
9.1 消息的分类 151
9.2 系统消息 151
9.2.1 WM-CREATE 151
9.2.2 WM-CLOSE 152
9.2.3 WM-QUERYENDSEESSION 152
9.2.4 WM-DESTROY 152
9.2.5 WM-NCDESTROY 153
9.2.6 WM-TIMER 153
9.2.7 WM-PAINT 154
9.2.8 程序实例 155
9.3 用户自定义消息 157
9.3.1 消息标识 157
9.3.2 消息映射宏 157
9.3.3 消息发送 158
9.3.4 消息接收 158
9.3.5 使用系统热键消息 159
9.3.6 使用进程间消息 162
9.4 小结 165
9.5 练习题 165
第10章 对话框 167
10.1 概述 167
10.2 对话框模板资源 167
10.2.1 创建对话框模板资源 167
10.2.2 编辑对话框模板属性 167
10.2.3 在对话框模板中添加或删除控件 169
10.2.4 在对话框模板上调整控件 170
10.2.5 修改控件的属性 170
10.2.6 设定控件跳格次序 171
10.2.7 测试对话框模板资源 172
10.3 对话框类 172
10.3.1 模式对话框 172
10.3.2 模式对话框例子 172
10.3.3 非模式对话框 173
10.3.4 非模式对话框例子 173
10.4 自定义对话框 175
10.4.1 建立模板资源 175
10.4.2 建立CDialog派生类 175
10.4.3 为控件添加消息映射 175
10.4.4 为控件添加成员变量 177
10.4.5 使用CDialog派生类对象 178
10.5 基于对话框的MFC程序 178
10.5.1 建立项目 179
10.5.2 对话框程序框架分析 180
10.6 通用对话框 185
10.6.1 CFileDialog 186
10.6.2 CColorDialog 188
10.6.3 CFontDialog 189
10.7 小结 190
10.8 练习题 191
第11章 常用控件 192
11.1 概述 192
11.1.1 控件消息 192
11.1.2 通知消息 192
11.1.3 控件的创建 192
11.2 按钮(BUTTON) 192
11.2.1 按钮样式 193
11.2.2 按钮控件的通知消息 193
11.2.3 在对话框中使用按钮的例子 193
11.3 文本编辑框(EDITBOX) 195
11.3.1 文本编辑框的样式 195
11.3.2 文本编辑框控件的通知消息 195
11.3.3 在对话框中使用编辑框控件 196
11.4 静态控件(STATIC) 197
11.4.1 静态控件的样式 197
11.4.2 静态控件的通知消息 198
11.4.3 在对话框中使用静态控件 198
11.5 复选框(CHECKBUTTON) 199
11.5.1 复选框的样式 199
11.5.2 复选框的通知消息 199
11.5.3 在对话框中使用复选框 200
11.6 单选按扭(RADIOBUTTON) 200
11.6.1 单选按钮的样式 200
11.6.2 单选按钮的通知消息 200
11.6.3 在对话框中使用复选框和单选按钮 200
11.7 进程条(PROGRESS) 201
11.7.1 进程条的样式 201
11.7.2 进程条的成员函数 201
11.7.3 在对话框中使用进程条控件 202
11.8 滑动条(SLIDER) 203
11.8.1 滑动控件的样式 203
11.8.2 滑动控件的通知消息 203
11.8.3 微调控件的成员函数 203
11.8.4 在对话框中使用滑动条控件 204
11.9 Spin控件 204
11.9.1 微调控件的样式 205
11.9.2 微调控件的通知消息 205
11.9.3 微调控件的成员函数 205
11.9.4 在对话框中使用微调控件 206
11.10 组合框(COMBOBOX) 207
11.10.1 组合框的样式 207
11.10.2 组合框的常用通知消息 208
11.10.3 在对话框中使用组合框 208
11.11 小结 209
11.12 练习题 209
第12章 使用树控件和列表控件 211
12.1 图像列表 211
12.1.1 建立图像列表 211
12.1.2 图像列表的操作 212
12.2 树控件 213
12.2.1 树控件的创建 214
12.2.2 树控件的操作 217
12.3 列表控件 220
12.3.1 列表控件的创建 220
12.3.2 列表控件的操作 224
12.4 小结 227
12.5 练习题 227
第13章 动态链接库 228
13.1 概述 228
13.2 创建标准Win32动态库 228
13.2.1 新建标准Win32动态库项目 228
13.2.2 添加函数 229
13.2.3 添加类 231
13.2.4 导出函数 232
13.2.5 导出自定义类 232
13.2.6 生成DLL 232
13.3 创建标准MFC动态库 232
13.3.1 新建MFC动态库项目 232
13.3.2 添加自定义函数 234
13.3.3 添加自定义类 236
13.3.4 导出自定义函数 236
13.3.5 导出自定义类 236
13.4 在程序中使用动态库 237
13.4.1 加载DLL的方式 237
13.4.2 使用隐式加载 237
13.4.3 使用显式加载 239
13.5 小结 240
13.6 练习题 241
第14章 使用多任务 242
14.1 进程 242
14.1.1 进程的优先级 242
14.1.2 启动进程 243
14.1.3 进程的管理 245
14.2 线程 252
14.2.1 线程的优先级 252
14.2.2 线程的创建和终止 253
14.2.3 使用工作者线程 254
14.2.4 使用用户接口线程 255
14.3 进程、线程间的同步 256
14.3.1 等待函数 257
14.3.2 使用事件 258
14.3.3 使用临界段 259
14.3.4 使用互斥量 261
14.3.5 使用信号量 263
14.4 小结 264
14.5 练习题 265
附录 266
附录A Windows窗口样式 266
附录B Windows虚键码表 269
附录C 常用数据结构 271
参考文献 282