第1章 Visual C++开发环境 1
1.1集成开发环境窗口 1
1.2 AppWizard与ClassWizard 2
1.2.1应用程序向导App Wizard 2
1.2.2类向导ClassWizard 3
1.3项目与项目工作区 5
1.3.1项目 5
1.3.2项目工作区 5
1.4集成开发环境的菜单栏 7
1.4.1 File菜单 7
1.4.2 Edit菜单 7
1.4.3 View菜单 8
1.4.4 Insert菜单 8
1.4.5 Project菜单 9
1.4.6 Build菜单 9
1.4.7 Tools菜单 9
1.4.8 Window菜单 9
1.4.9 Help菜单 10
1.5集成开发环境的工具栏 10
1.5.1 Standard工具栏 11
1.5.2 Build MiniBar工具栏 11
1.5.3 WizardBar工具栏 11
1.6资源与资源编辑器 12
1.6.1资源和资源符号 12
1.6.2资源编辑器 12
习题 16
第2章 MFC应用程序概述 18
2.1 Windows应用程序概述 18
2.1.1窗口 18
2.1.2消息和事件 18
2.1.3基本数据类型 20
2.1.4句柄 20
2.2 MFC应用程序框架 21
2.2.1创建MFC应用程序框架 21
2.2.2 MFC应用程序框架结构类 27
2.2.3 MFC应用程序的分析 29
2.2.4文档/视图结构 31
2.3消息映射与消息处理 32
2.3.1消息的类别及其描述 32
2.3.2 MFC消息映射机制 34
2.3.3自定义消息处理 36
2.4程序调试 37
2.4.1查找源程序中的语法错误 38
2.4.2调试器 38
2.4.3跟踪调试程序 39
2.4.4 MFC调试宏 43
2.4.5 Dump()调试函数 44
2.5应用实例 44
2.5.1实例简介 44
2.5.2创建过程 44
习题 46
第3章 图形与文本 49
3.1图形设备接口和设备环境 49
3.1.1图形设备接口 49
3.1.2设备环境 50
3.1.3设备环境类 50
3.1.4颜色的设置 51
3.1.5获取设备环境 52
3.1.6编程实例 52
3.2 GDI对象类CGdiObj ect 55
3.3画笔和画刷的使用 56
3.3.1使用库存对象 56
3.3.2创建和使用自定义画笔 58
3.3.3创建和使用自定义画刷 59
3.4处理文本 61
3.4.1设置文本显示属性 61
3.4.2设置字体 62
3.4.3格式化文本 66
3.4.4常用文本输出函数 68
3.5位图 70
3.5.1设备相关位图和设备无关位图 70
3.5.2位图操作函数 71
3.5.3位图的显示 72
3.6应用实例 73
3.6.1实例简介 73
3.6.2创建过程 74
习题 75
第4章 菜单、工具栏和状态栏 78
4.1菜单 78
4.1.1菜单的类型 78
4.1.2编辑菜单 79
4.1.3建立消息映射 82
4.1.4菜单的有效控制 83
4.1.5创建快捷菜单 85
4.1.6动态创建菜单 88
4.1.7创建基于对话框的菜单 91
4.2工具栏 92
4.2.1编辑工具栏 93
4.2.2实现按钮功能 94
4.2.3自定义工具栏 95
4.3状态栏 99
4.3.1状态栏类的继承关系 99
4.3.2状态栏类的成员函数 99
4.3.3状态栏操作 100
4.4应用实例 102
4.4.1实例简介 102
4.4.2创建过程 102
习题 108
第5章 对话框 110
5.1对话框概述 110
5.1.1对话框的类型 110
5.1.2对话框的CDialog类 110
5.1.3对话框的组成 111
5.2模态对话框 112
5.2.1设计对话框模板资源 112
5.2.2设计对话框类 115
5.2.3运行对话框 119
5.2.4对话框数据交换和校验机制 120
5.3非模态对话框 121
5.3.1非模态对话框的特点 121
5.3.2窗口对象的自动清除 124
5.4属性页对话框 126
5.5通用对话框 130
5.5.1 CFileDialog类 130
5.5.2 CColorDialog类 132
5.5.3 CFontDialog类 134
5.5.4 CPrintDialog类和CPageSetupDialog类 135
5.5.5 CFindReplaceDialog类 136
5.6应用实例 137
5.6.1实例简介 137
5.6.2创建过程 137
习题 141
第6章 Windows常用控件 143
6.1控件概述 143
6.1.1控件的创建 143
6.1.2控件的组织 144
6.1.3控件的共有属性 145
6.1.4控件的访问 145
6.2 CStatic类控件 146
6.2.1静态文本控件 146
6.2.2图片控件 147
6.3 CEdit类控件 148
6.3.1编辑框的风格 148
6.3.2编辑框的基本操作 149
6.3.3编辑框的通知消息 150
6.4 CButton类控件 151
6.4.1概述 151
6.4.2按钮控件的基本操作 152
6.4.3按钮控件的通知消息 153
6.4.4 CBitmapButton类 155
6.5 CListBox类控件 157
6.5.1列表框的风格 157
6.5.2列表框的基本操作 158
6.5.3列表框的通知消息 159
6.6 CComboBox类控件 162
6.6.1组合框的属性 162
6.6.2组合框的基本操作 163
6.6.3组合框的通知消息 164
6.7 CSpinButtonCtrl类控件 166
6.7.1旋转按钮控件常用的风格 166
6.7.2旋转按钮控件的基本操作 167
6.7.3旋转按钮控件的通知消息 167
6.8 CSliderCtrl类控件 169
6.8.1滑动条的风格 169
6.8.2滑动条的基本操作 170
6.8.3滑动条的通知消息 170
6.9 CProgressCtrl类控件 172
6.9.1进度条的创建 172
6.9.2进度条的风格 172
6.9.3进度条的基本操作 173
6.10应用实例 175
6.10.1实例简介 175
6.10.2创建过程 175
习题 178
第7章 文档与视图 180
7.1文档/视图结构 180
7.1.1概述 180
7.1.2文档与视图之间的相互作用 185
7.1.3使用文档/视图结构的意义 186
7.2简单的文档/视图结构应用程序 187
7.2.1文档中数据的初始化 187
7.2.2文档中数据的清理 188
7.2.3简单的文档/视图结构应用程序 188
7.2.4集合类的使用 190
7.3文档的读写 195
7.3.1 MFC文档读写机制 195
7.3.2 MFC文档序列化 198
7.3.3自定义可序列化的类 200
7.4分割视图窗口 201
7.4.1 CSplitterWnd类 202
7.4.2分割视图窗口的实现技术 202
7.5多文档的应用程序 208
7.5.1多文档应用程序的界面 208
7.5.2多视图的应用程序 209
7.5.3多类型的应用程序 213
7.6应用实例 217
7.6.1实例简介 217
7.6.2创建过程 217
习题 222
第8章 打印编程 224
8.1基本打印功能 224
8.1.1打印原理 224
8.1.2 CPrintInfo类 227
8.1.3打印过程 228
8.1.4打印预览 229
8.2设置打印坐标系 230
8.2.1 Windows映射模式 230
8.2.2映射模式的设置 231
8.3多页打印 232
8.3.1默认打印存在的不足 232
8.3.2实现多页打印功能 233
8.4高级打印 236
8.4.1页眉和页脚 236
8.4.2设置页边距 236
习题 240
第9章 动态链接库编程 241
9.1概述 241
9.1.1动态链接库的概念 241
9.1.2动态链接库和静态链接库的区别 241
9.1.3使用动态链接库的优点 242
9.1.4 DLL文件的存放位置 242
9.1.5动态链接库的分类 242
9.2创建MFC DLL 243
9.2.1使用DEF文件 243
9.2.2使用关键字_declspec(dllexport) 246
9.2.3两种导出函数方法的比较 247
9.3使用MFC DLL 248
9.3.1使用隐式链接 248
9.3.2使用显式链接 251
9.4 MFC扩展DLL 253
9.4.1创建MFC扩展DLL 253
9.4.2使用MFC扩展DLL 255
习题 256
第10章 多线程编程 258
10.1概述 258
10.1.1问题的提出 258
10.1.2进程和线程 259
10.1.3 MFC对多线程编程的支持 260
10.2线程的创建 260
10.2.1创建工作者线程 261
10.2.2创建用户界面线程 263
10.3线程的控制 265
10.3.1终止一个线程 265
10.3.2悬挂和恢复线程 265
10.3.3线程的优先级 266
10.4线程间的通信 271
10.4.1使用全局变量进行通信 271
10.4.2使用自定义消息进行通信 271
10.5线程间的同步 273
10.5.1使用CCriticalSection类 273
10.5.2使用CMutex类 276
10.5.3使用CSemaphore类 277
10.5.4使用CEvent类 280
习题 282
第11章 数据库编程 283
11.1概述 283
11.1.1数据库和数据库管理系统 283
11.1.2关系数据库 284
11.1.3 SQL语言 284
11.1.4 Visual C++中访问数据库的相关技术 286
11.2 ODBC技术 287
11.2.1 ODBC概述 287
11.2.2 MFC ODBC数据库类 289
11.2.3 CRecordset类 289
11.3创建MFC ODBC数据库应用程序 293
11.3.1准备数据库 293
11.3.2注册数据源 293
11.3.3创建应用程序框架 295
11.3.4实现数据库程序的基本功能 297
11.3.5实现数据库程序的高级功能 300
11.4 ADO技术 305
11.4.1 ADO访问数据源的特点 305
11.4.2 ADO的结构 305
11.4.3 ADO常用对象 306
11.4.4 _bstr_t和_variant_t类 309
11.4.5在VC++中使用ADO 309
11.5 ADO数据库应用实例 312
11.5.1实例简介 312
11.5.2创建过程 312
习题 319
第12章 多媒体编程 321
12.1多媒体程序设计基础 321
12.1.1多媒体程序设计的原理 321
12.1.2多媒体数据格式 321
12.2 Windows的多媒体服务 322
12.2.1高级音频函数 322
12.2.2媒体控制接口 326
12.2.3 MCIWnd窗口类 329
12.3 ActiveX控件 333
12.3.1 ActiveX控件简介 333
12.3.2 ActiveX控件的使用 334
12.3.3使用ActiveMovie控件的播放器 336
习题 339
第13章 综合应用实例 340
13.1功能描述 340
13.2系统分析 341
13.2.1实例分析 341
13.2.2计算机的决策方式 341
13.3数据结构设计 344
13.3.1 CManager类 344
13.3.2 CStatus类 347
13.3.3 CChess类 350
13.3.4 CPlayer类 351
13.3.5 CComputer类 352
13.4系统详细设计 353
13.4.1项目创建 353
13.4.2界面设计 353
13.4.3资源编辑 357
13.4.4棋盘的定位及显示 359
13.4.5成员的添加与初始化 360
13.4.6光标类型的切换 361
13.4.7游戏设置 362
13.4.8落子操作 362
13.4.9右视图功能的实现 370
13.4.10悔棋功能的实现 375
13.4.11重新开始游戏功能实现 378
13.4.12文件保存及打开 379
13.4.13计时功能的实现 379
13.4.14日志及排行榜功能的实现 382
13.4.15选手姓名的读入 388
13.4.16音效功能的实现 389
13.4.17游戏启动封面的设计 391
附录 392
实验1框架的创建与消息处理(2学时) 392
实验2图形与文本(4学时) 392
实验3菜单(2学时) 393
实验4工具栏与状态栏(2学时) 394
实验5对话框(2学时) 394
实验6标准控件(2学时) 395
实验7通用控件(2学时) 395
实验8文档与视图(4学时) 396
实验9打印编程(2学时) 397
实验10动态链接库编程(2学时) 397
实验11多线程编程(2学时) 397
实验12 ODBC数据库编程(2学时) 398
实验13 ADO数据库编程(2学时) 398
实验14多媒体编程(2学时) 399
参考文献 400