第1章 VC++程序设计基础 1
1.1 Windows概述 1
1.1.1 操作系统的发展历史 1
1.1.2 Windows的技术特点 2
1.2 Windows程序特点 3
1.2.1 程序组成 3
1.2.2 数据类型 5
1.2.3 匈牙利命名法 6
1.2.4 窗口消息 7
1.2.5 运行模式 8
1.3 一个简单的窗口程序 9
1.3.1 开始之前 9
1.3.2 WinMain()函数 10
1.3.3 窗口函数 14
1.4 上机步骤 15
1.4.1 进入开发环境 15
1.4.2 新建项目 16
1.4.3 修改项目选项 17
1.4.4 添加程序文件 17
1.4.5 编辑程序 18
1.4.6 添加源文件到项目 18
1.4.7 调试运行 19
1.5 增加窗口程序功能 19
1.5.1 关闭窗口消息 19
1.5.2 显示信息窗口 19
1.6 小结 21
1.7 习题 21
第2章 MFC程序设计基础 22
2.1 MFC概述 22
2.1.1 MFC与应用程序框架 22
2.1.2 MFC的组成 22
2.1.3 MFC中的类 23
2.2 MFC程序的特点 24
2.2.1 概述 24
2.2.2 MFC与消息处理 24
2.2.3 运行模式 24
2.3 一个简单的MFC程序 25
2.3.1 程序开始之前 25
2.3.2 派生应用程序类 26
2.3.3 派生窗口类 26
2.3.4 建立窗口 26
2.3.5 加入消息映射 27
2.3.6 建立MFC应用程序对象 28
2.4 上机步骤 28
2.4.1 建立项目 28
2.4.2 修改项目属性 29
2.4.3 调试运行 29
2.5 功能扩展 29
2.5.1 WM SIZE消息 30
2.5.2 AfxMessageBox()函数 31
2.5.3 WM LBUTTONDBCLK消息 32
2.6 使用资源 33
2.6.1 建立图标资源 33
2.6.2 在程序中使用图标资源 34
2.7 小结 35
2.8 习题 35
第3章 常用MFC通用类 36
3.1 CPoint、CSize和CRect类 36
3.1.1 CPoint类 36
3.1.2 CSize类 36
3.1.3 CRect类 36
3.2 CString类 37
3.2.1 创建字符串 37
3.2.2 访问字符串数据 38
3.2.3 字符串的比较 39
3.2.4 子串函数 40
3.2.5 字符串处理函数 41
3.2.6 应用实例 42
3.3 集合类 42
3.3.1 列表类CList 42
3.3.2 数组类CArray 45
3.3.3 映射类CMap 47
3.3.4 应用实例 48
3.4 时间处理类 50
3.4.1 COleDateTime类 50
3.4.2 COleDateTimeSpan类 53
3.5 异常处理类 55
3.5.1 异常处理类的使用 55
3.5.2 MFC异常处理类简介 56
3.6 小结 57
3.7 习题 57
第4章 文档视图程序 58
4.1 概述 58
4.1.1 程序组成 58
4.1.2 程序分类 59
4.1.3 运行方式 59
4.2 创建文档视图程序 60
4.2.1 新建项目 60
4.2.2 修改项目选项 61
4.2.3 完成向导 62
4.3 文档视图程序文件结构 62
4.3.1 源文件 62
4.3.2 资源文件 63
4.4 文档视图框架程序分析 63
4.4.1 头文件 63
4.4.2 应用程序类 64
4.4.3 文档类 66
4.4.4 视图类 68
4.4.5 框架窗口类 69
4.5 应用实例 71
4.5.1 添加数据成员 71
4.5.2 添加数据存取 72
4.5.3 添加数据显示 73
4.5.4 添加数据排序 74
4.6 小结 75
4.7 习题 75
第5章 绘图输出 77
5.1 GDI与MFC 77
5.1.1 概述 77
5.1.2 设备环境类 78
5.1.3 GDI对象类 78
5.2 绘制图形 79
5.2.1 开始绘图 79
5.2.2 更改画笔 81
5.2.3 使用画刷 83
5.2.4 使用位图 84
5.3 输出文本 88
5.3.1 文本输出函数 88
5.3.2 更改文本颜色 89
5.3.3 更改字形和字体 90
5.4 坐标与坐标模式 93
5.4.1 坐标模式 94
5.4.2 MM_ANISOTROPIC坐标模式 95
5.4.3 MM_ISOTROPIC坐标模式 96
5.4.4 平移坐标 97
5.4.5 修改坐标方向 98
5.5 小结 99
5.6 习题 100
第6章 用户输入 101
6.1 鼠标和键盘 101
6.1.1 鼠标消息 101
6.1.2 键盘消息 104
6.2 使用菜单 106
6.2.1 编辑菜单 106
6.2.2 处理菜单命令 108
6.2.3 修改菜单状态 109
6.2.4 使用菜单快捷键 113
6.2.5 使用菜单加速键 114
6.2.6 使用弹出式菜单 116
6.3 小结 118
6.4 习题 118
第7章 工具栏与状态栏 119
7.1 工具栏 119
7.2 处理工具栏命令 120
7.2.1 工具栏按钮状态 122
7.2.2 自定义工具栏 123
7.3 状态栏 128
7.3.1 默认状态栏 128
7.3.2 操作状态栏 130
7.4 小结 136
7.5 习题 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类 142
8.2.4 序列化应用实例 145
8.3 文件管理 148
8.3.1 文件操作 148
8.3.2 目录操作 149
8.4 小结 149
8.5 习题 149
第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 消息发送 157
9.3.4 消息接收 158
9.3.5 使用系统热键消息 159
9.3.6 使用进程间消息 162
9.4 小结 165
9.5 习题 165
第10章 对话框 166
10.1 概述 166
10.2 对话框模板资源 166
10.2.1 创建对话框模板资源 166
10.2.2 编辑对话框模板属性 167
10.2.3 在对话框模板中添加或删除控件 168
10.2.4 在对话框模板上调整控件 169
10.2.5 修改控件的属性 169
10.2.6 设定控件跳格次序 169
10.2.7 测试对话框模板资源 169
10.3 对话框类 170
10.3.1 模式对话框 170
10.3.2 模式对话框实例 170
10.3.3 非模式对话框 171
10.3.4 非模式对话框实例 171
10.4 自定义对话框 173
10.4.1 建立模板资源 173
10.4.2 建立CDialogEx派生类 174
10.4.3 在对话框上绘图 175
10.4.4 为控件添加成员变量 175
10.4.5 为控件添加消息映射 176
10.4.6 使用CDialog派生类对象 177
10.5 基于对话框的MFC程序 177
10.5.1 建立项目 178
10.5.2 应用程序类 179
10.5.3 对话框窗口类 180
10.6 通用对话框 181
10.6.1 CFileDialog 181
10.6.2 CColorDialog 183
10.6.3 CFontDialog 185
10.7 小结 186
10.8 习题 187
第11章 常用控件 188
11.1 概述 188
11.1.1 控件窗口样式 188
11.1.2 控件的通知消息 188
11.1.3 控件类的成员函数 188
11.1.4 控件的创建方式 189
11.2 按钮控件(BUTTON) 189
11.2.1 按钮控件的样式 189
11.2.2 按钮控件的通知消息 189
11.2.3 按钮控件类的成员函数 190
11.2.4 按钮控件使用实例 190
11.3 编辑框控件(EDITBOX) 192
11.3.1 编辑框控件的样式 192
11.3.2 编辑框控件的通知消息 193
11.3.3 编辑框控件类的成员函数 193
11.3.4 编辑框控件使用实例 193
11.4 静态控件(STATIC) 195
11.4.1 静态控件的样式 195
11.4.2 静态控件的通知消息 196
11.4.3 静态控件类的成员函数 196
11.4.4 静态控件使用实例 196
11.5 修改控件的字体和颜色 197
11.5.1 修改控件的字体 197
11.5.2 修改控件的颜色 198
11.6 复选框控件(CHECKBUTTON) 200
11.6.1 复选框控件的样式 200
11.6.2 复选框控件的通知消息 200
11.6.3 复选框类成员函数 200
11.6.4 复选框控件使用实例 200
11.7 单选按扭控件(RADIOBUTTON) 200
11.7.1 单选按钮控件的样式 200
11.7.2 单选按钮控件的通知消息 200
11.7.3 单选按钮类的成员函数 201
11.7.4 复选框控件和单选按钮控件使用实例 201
11.8 进程条控件(PROGRESS) 202
11.8.1 进程条控件的样式 202
11.8.2 进程条控件的通知消息 202
11.8.3 进程条类的成员函数 202
11.8.4 进程条控件使用实例 203
11.9 滑动条控件(SLIDER) 204
11.9.1 滑动条控件的样式 204
11.9.2 滑动条控件的通知消息 204
11.9.3 滑动条控件类的成员函数 205
11.9.4 滑动条控件使用实例 205
11.10 微调控件(SPIN) 206
11.10.1 微调控件的样式 206
11.10.2 微调控件的通知消息 206
11.10.3 微调控件类的成员函数 207
11.10.4 微调控件使用实例 207
11.11 组合框控件(COMBOBOX) 208
11.11.1 组合框控件的样式 209
11.11.2 组合框控件的通知消息 209
11.11.3 组合框类的成员函数 209
11.11.4 组合框控件使用实例 210
11.12 小结 211
11.13 习题 211
第12章 使用树控件和列表控件 213
12.1 图像列表 213
12.1.1 建立图像列表 213
12.1.2 图像列表的操作 214
12.2 树控件 215
12.2.1 概述 215
12.2.2 树控件的创建 215
12.2.3 树控件的操作 219
12.3 列表控件 221
12.3.1 概述 221
12.3.2 列表控件的创建 222
12.3.3 列表控件的操作 226
12.4 小结 229
12.5 习题 229
第13章 动态链接库 230
13.1 概述 230
13.2 创建标准Win32动态库 231
13.2.1 新建Win32动态库项目 231
13.2.2 添加函数 233
13.2.3 添加类 233
13.2.4 导出函数 234
13.2.5 导出类 234
13.2.6 生成DLL 234
13.2.7 查看DLL中的导出函数 234
13.3 创建标准MFC动态库 235
13.3.1 新建MFC动态库项目 235
13.3.2 添加函数 236
13.3.3 添加类 238
13.3.4 导出函数 239
13.3.5 导出类 239
13.3.6 生成DLL 240
13.3.7 查看DLL中的导出函数 240
13.4 在程序中使用动态库 240
13.4.1 加载DLL的方式 240
13.4.2 使用隐式加载 241
13.4.3 使用显式加载 242
13.5 与其他程序设计语言共享DLL 247
13.5.1 共享DLL给其他程序设计语言 247
13.5.2 调用其他语言开发的DLL 248
13.6 小结 248
13.7 习题 248
第14章 使用多任务 250
14.1 进程 250
14.1.1 进程的优先级 250
14.1.2 启动进程 250
14.1.3 进程的管理 253
14.2 线程 260
14.2.1 线程的优先级 260
14.2.2 线程的创建和终止 260
14.2.3 工作者线程实例 261
14.2.4 使用用户接口线程 264
14.3 进程与线程间的同步 267
14.3.1 等待函数 268
14.3.2 使用事件CEvent 269
14.3.3 使用临界段CCriticalSection 270
14.3.4 使用互斥量CMutex 272
14.3.5 使用信号量CSemaphore 273
14.4 小结 274
14.5 习题 275
第15章 手机开发基础 276
15.1 概述 276
15.2 第一个手机程序 276
15.2.1 开始之前 276
15.2.2 创建手机程序 277
15.2.3 通过模拟器运行手机程序 279
15.2.4 发布到手机 279
15.2.5 在手机屏幕上绘图 280
15.2.6 处理手机触屏输入 283
15.3 Cocos2d-x程序设计基础 284
15.3.1 开发步骤 285
15.3.2 配置开发环境 285
15.3.3 创建跨平台项目 289
15.3.4 运行模式 290
15.3.5 生成Windows程序 291
15.3.6 生成Android程序 292
15.3.7 生成iOS程序 293
15.3.8 跨平台开发初步 294
15.4 小结 297
15.5 习题 297
附录 298
附录A Windows窗口样式 298
附录B Windows虚键码表 300
附录C常用数据结构 301