第1章 Windows程序设计基础 1
1.1 Windows简介 1
1.1.1 Windows发展历程 1
1.1.2 Windows的特点 3
1.2操作系统的功能及分类 3
1.2.1操作系统的功能 3
1.2.2操作系统的分类 4
1.3 API与MFC 5
1.3.1 API简介 5
1.3.2 MFC简介 5
1.4多任务的实现 6
1.4.1多任务的概念 6
1.4.2多任务的实现 6
1.5虚拟内存及其管理 7
1.5.1虚拟内存 7
1.5.2虚拟内存管理 8
小结 8
习题 8
第2章 Windows编程概述 9
2.1 Windows界面组成 9
2.2 Windows应用程序的数据类型 11
2.2.1基本数据类型 11
2.2.2特殊数据类型 11
2.3 Windows应用程序结构 12
2.3.1 WinMain函数 12
2.3.2 WndProc窗口函数 15
2.4 Windows编程实例 16
小结 21
习题 21
上机指导 22
实验一:熟悉Visual C++集成开发环境 22
实验二:创建一个Win32应用程序(1) 22
实验三:创建一个Win32应用程序(2) 23
第3章 Windows应用程序的面向对象 25
3.1应用程序主函数中类的封装 25
3.1.1窗口类的声明 25
3.1.2应用程序类的声明 27
3.1.3主函数封装后的程序 28
3.2派生类 33
3.2.1应用程序类的派生类 33
3.2.2窗口类的派生类 35
小结 40
习题 40
上机指导 41
实验一:声明窗口类实例 41
实验二:声明应用程序类的派生类 41
实验三:创建一个完整程序 41
第4章 MFC应用程序框架 42
4.1应用程序向导AppWizard 42
4.1.1创建应用程序框架 42
4.1.2编译运行应用程序 46
4.1.3查看生成文件信息 47
4.2使用项目工作区 48
4.3 MFC应用程序的基本类 49
4.3.1 CObject类 49
4.3.2窗口、对话框、控件类 50
小结 52
习题 52
上机指导 53
实验一:创建基于单文档的应用程序TestOne 53
实验二:创建基于对话框的应用程序TestTwo 53
实验三:设计对话框资源TestThree 54
第5章 Windows绘图程序设计 55
5.1图形设备接口 55
5.2设备上下文 55
5.2.1设备上下文介绍 55
5.2.2设备上下文类型 57
5.2.3设备上下文MFC类 57
5.2.4设备上下文操作 63
5.3 GDI对象 63
5.4绘图函数 64
5.4.1点线函数 64
5.4.2形状函数 67
5.4.3填充函数 70
5.4.4位图函数 72
5.5画笔与画刷 76
5.5.1使用库存画笔与画刷 76
5.5.2自定义画笔 78
5.5.3自定义画刷 80
小结 84
习题 84
上机指导 84
实验一:绘制一个矩形 84
实验二:填充矩形 85
实验三:与鼠标相关的图形 85
第6章 文本和字体 87
6.1文本函数 87
6.1.1使用TextOut显示文本 87
6.1.2使用DrawText显示指定格式文本 88
6.1.3使用ExtTextOut显示字符串 90
6.1.4使用TabbedTextOut显示字符串 91
6.2文本属性 92
6.2.1对齐方式 93
6.2.2字符间距 94
6.2.3背景模式 95
6.2.4文本颜色 96
6.2.5背景颜色 97
6.2.6字符属性 98
6.3字体 100
6.3.1使用库存字体 101
6.3.2使用CreateFont创建字体 102
6.3.3使用CreateFontIndirect创建字体 104
小结 106
习题 106
上机指导 106
实验一:输出颜色为红色的字体 106
实验二:使用库存字体输出文本,并测试字体的宽度和高度 107
实验三:使用自定义字体 108
第7章 消息 109
7.1 Windows消息 109
7.1.1消息结构 109
7.1.2消息分类 110
7.2消息的传输 111
7.2.1消息的寄送 111
7.2.2消息的发送 112
7.3消息处理 112
7.3.1消息响应 112
7.3.2消息映射 113
7.3.3消息响应函数 114
7.3.4添加消息响应函数 114
7.4自定义消息 119
7.4.1自定义消息的基本步骤 119
7.4.2自定义消息应用 120
小结 123
习题 123
上机指导 123
实验一:查看消息映射 123
实验二:添加消息响应函数 124
实验三:添加自定义消息 124
第8章 菜单、键盘和鼠标 125
8.1菜单 125
8.1.1菜单基本知识 125
8.1.2创建下拉式菜单 126
8.1.3添加消息响应函数 129
8.1.4弹出式菜单 131
8.2键盘 133
8.2.1键盘的虚拟码 133
8.2.2键盘响应 133
8.3鼠标 136
8.3.1鼠标消息 136
8.3.2鼠标响应 137
8.3.3鼠标光标 141
8.3.4鼠标键盘 142
小结 145
习题 145
上机指导 146
实验一:创建下拉式菜单 146
实验二:识别键盘按键 146
实验三:键盘与鼠标的结合 146
第9章 子窗体控件 147
9.1 Windows标准控件 147
9.1.1控件概述 147
9.1.2窗口类CWnd 148
9.2创建控件 150
9.2.1静态创建控件 151
9.2.2动态创建控件 153
9.3按钮控件 156
9.3.1单选按钮 156
9.3.2复选框 158
9.4编辑控件 159
9.5树形控件 160
9.5.1树形控件概述 160
9.5.2树形控件的使用 162
小结 163
习题 163
上机指导 164
实验一:熟悉标准控件 164
实验二:使用树形控件 164
实验三:列表控件 164
第10章 对话框 165
10.1对话框的基础知识 165
10.1.1对话框概述 165
10.1.2对话框分类 166
10.2消息对话框 167
10.2.1消息对话框概述 167
10.2.2消息对话框样式 168
10.2.3消息对话框的返回值 169
10.3模态对话框 169
10.3.1创建模态对话框 169
10.3.2创建对话框类 170
10.3.3添加程序代码 173
10.3.4模态对话框消息循环 178
10.3.5模态的终结 180
10.4非模态对话框 182
10.4.1创建非模态对话框 182
10.4.2创建过程分析 183
10.5通用对话框 184
10.5.1颜色通用对话框 185
10.5.2字体通用对话框 185
10.5.3定制打开文件通用对话框 186
10.5.4查找和替换通用对话框 188
10.5.5打印通用对话框 188
小结 189
习题 190
上机指导 190
实验一:熟悉消息对话框 190
实验二:加法运算 190
实验三:创建非模态对话框 190
第11章 文档/视图界面 191
11.1基本概念 191
11.1.1概述 191
11.1.2单文档界面(SDI)应用程序 192
11.1.3多文档界面(MDI)应用程序 192
11.2单文档和多文档界面应用程序的实现 193
11.2.1利用AppWizard创建单文档界面应用程序框架 193
11.2.2程序框架中的主要类及相互关系 196
11.2.3文档类、视图类核心函数及作用 198
11.2.4新建、保存和打开的实现 199
11.2.5多文档界面应用程序框架 201
11.3窗口分割与多视 202
11.3.1窗口分割基础知识 203
11.3.2 Create——创建分割窗口 203
11.3.3 CreateStatic——创建静态分割窗口 204
11.3.4 CreateView——创建窗格 205
11.3.5 SetRowInfo和SetColumnInfo——设置窗格信息 206
11.3.6 OnDrawSplitter——绘制分割窗口特征 207
11.3.7 OnInvertTracker——绘制分割条 208
小结 209
习题 209
上机指导 210
实验一:熟悉单文档界面应用程序 210
实验二:动态分割窗口 210
实验三:静态分割窗口 210
第12章 MFC动态链接库 211
12.1 DLL基本理论 211
12.1.1 DLL基本概念 211
12.1.2 DLL的分类 212
12.1.3 DLL的工作原理 212
12.2简单DLL示例 213
12.2.1一个简单的DLL 213
12.2.2导出函数 215
12.2.3导入函数 217
12.3访问动态链接库 217
12.3.1隐式链接 217
12.3.2显式链接 217
12.4常规DLL 219
12.4.1静态链接到MFC的常规DLL 220
12.4.2动态链接到MFC的常规DLL 222
12.4.3 DLL的链接使用 224
12.5扩展DLL 226
12.5.1生成DLL 226
12.5.2链接DLL 228
小结 229
习题 229
上机指导 229
实验一:创建一个简单的DLL 229
实验二:显式链接 230
第13章 VC数据库编程 231
13.1数据库基础 231
13.1.1数据库的基本概念 231
13.1.2数据库管理系统(DBMS) 232
13.1.3结构化查询语言(SQL) 232
13.2数据库开发技术简介 235
13.2.1 ODBC API/MFC ODBC技术 235
13.2.2 DAO技术 236
13.2.3 ADO技术 236
13.3在Visual C++中使用ADO开发数据库应用程序 238
13.3.1 Viusal C++对ADO的支持 238
13.3.2创建数据库与实例工程 239
13.3.3引入ADO对象 242
13.3.4连接数据源 243
13.3.5开发技术——连接对象(Connection) 243
13.3.6创建表并添加数据 245
13.3.7开发技术——ADO对象命令的执行 246
13.3.8开发技术——Recordset对象 247
13.3.9遍历、删除、编辑记录的实现 253
13.4使用ODBC数据源连接数据库 257
13.4.1手动实现设置ODBC数据源 258
13.4.2 ADO连接ODBC数据源 259
13.4.3 Visual C++程序实现设置ODBC数据源 260
13.4.4使用Visual C++程序设置ODBC数据源实例 260
小结 261
习题 261
上机指导 262
实验一:登录对话框 262
实验二:手动设置ODBC数据源 262
实验三:修改记录 262
第14章 多线程 263
14.1多线程基础 263
14.1.1进程与线程 263
14.1.2线程分类 264
14.2多线程编程 264
14.2.1 Win32 API线程处理 264
14.2.2工作者线程 265
14.2.3用户界面线程 267
14.3线程的终止 269
14.3.1线程的正常终止 269
14.3.2线程的异常终止 270
14.4线程的优先级与管理 270
14.4.1线程的优先级 270
14.4.2线程的优先级管理 272
14.4.3线程的调度 273
14.5线程之间的通信 274
14.5.1通信机制 274
14.5.2工作者线程通信 274
14.5.3用户界面线程通信 276
14.6线程的同步 279
14.6.1同步对象 279
14.6.2使用事件对象 281
14.6.3使用互斥对象 283
14.6.4使用临界区对象 285
14.6.5使用信号量对象 286
小结 288
习题 288
上机指导 288
实验一:工作者线程的设计和实现 288
实验二:线程同步对象使用 289
实验三:线程间自定义消息方式通信的设计与实现 290