第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
上机指导 21
实验一:熟悉Visual C++集成开发环境 21
实验二:创建一个Win32应用程序(1) 22
实验三:创建一个Win32应用程序(2) 22
第3章 Windows应用程序的面向对象 24
3.1应用程序主函数中类的封装 24
3.1.1窗口类的声明 24
3.1.2应用程序类的声明 26
3.1.3主函数封装后的程序 27
3.2派生类 31
3.2.1应用程序类的派生类 31
3.2.2窗口类的派生类 33
小结 37
习题 37
上机指导 37
实验一:声明窗口类实例 37
实验二:声明应用程序类的派生类 38
实验三:创建一个完整程序 38
第4章 MFC应用程序框架 39
4.1应用程序向导AppWizard 39
4.1.1创建应用程序框架 39
4.1.2编译运行应用程序 43
4.1.3查看生成文件信息 43
4.2使用项目工作区 45
4.3 MFC应用程序的基本类 46
4.3.1 CObject类 46
4.3.2窗口、对话框、控件类 46
小结 49
习题 49
上机指导 49
实验一:创建基于单文档的应用程序TestOne 49
实验二:创建基于对话框的应用程序TestTwo 50
实验三:设计对话框资源TestThree 50
第5章 Windows绘图程序设计 51
5.1图形设备接口 51
5.2设备上下文 51
5.2.1设备上下文介绍 51
5.2.2设备上下文类型 53
5.2.3设备上下文MFC类 53
5.2.4设备上下文操作 59
5.3 GDI对象 60
5.4绘图函数 60
5.4.1点线函数 60
5.4.2形状函数 63
5.4.3填充函数 66
5.4.4位图函数 68
5.5画笔与画刷 71
5.5.1使用库存画笔与画刷 71
5.5.2自定义画笔 73
5.5.3自定义画刷 75
小结 78
习题 78
上机指导 79
实验一:绘制一个矩形 79
实验二:填充矩形 79
实验三:与鼠标相关的图形 80
第6章 文本和字体 81
6.1文本函数 81
6.1.1使用TextOut显示文本 81
6.1.2使用DrawText显示指定格式文本 82
6.1.3使用ExtTextOut显示字符串 84
6.1.4使用TabbedTextOut显示字符串 85
6.2文本属性 86
6.2.1对齐方式 86
6.2.2字符间距 88
6.2.3背景模式 89
6.2.4文本颜色 90
6.2.5背景颜色 91
6.2.6字符属性 92
6.3字体 94
6.3.1使用库存字体 94
6.3.2使用CreateFont创建字体 95
6.3.3使用CreateFontIndirect创建字体 97
小结 99
习题 99
上机指导 99
实验一:输出颜色为红色的字体 99
实验二:使用库存字体输出文本,并测试字体的宽度和高度 100
实验三:使用自定义字体 101
第7章 消息 102
7.1 Windows消息 102
7.1.1消息结构 102
7.1.2消息分类 103
7.2消息的传输 104
7.2.1消息的寄送 104
7.2.2消息的发送 105
7.3消息处理 105
7.3.1消息响应 105
7.3.2消息映射 106
7.3.3消息响应函数 106
7.3.4添加消息响应函数 107
7.4自定义消息 111
7.4.1自定义消息的基本步骤 111
7.4.2自定义消息应用 112
小结 115
习题 115
上机指导 116
实验一:查看消息映射 116
实验二:添加消息响应函数 116
实验三:添加自定义消息 116
第8章 菜单、键盘和鼠标 118
8.1菜单 118
8.1.1菜单基本知识 118
8.1.2创建下拉式菜单 119
8.1.3添加消息响应函数 122
8.1.4弹出式菜单 124
8.2键盘 126
8.2.1键盘的虚拟码 126
8.2.2键盘响应 126
8.3鼠标 129
8.3.1鼠标消息 129
8.3.2鼠标响应 130
8.3.3鼠标光标 133
8.3.4鼠标键盘 134
小结 138
习题 138
上机指导 138
实验一:创建下拉式菜单 138
实验二:识别键盘按键 139
实验三:键盘与鼠标的结合 139
第9章 子窗体控件 140
9.1 Windows标准控件 140
9.1.1控件概述 140
9.1.2窗口类CWnd 141
9.2创建控件 143
9.2.1静态创建控件 144
9.2.2动态创建控件 146
9.3按钮控件 149
9.3.1单选按钮 149
9.3.2复选框 151
9.4编辑控件 153
9.5树形控件 153
9.5.1树形控件概述 153
9.5.2树形控件的使用 155
小结 156
习题 157
上机指导 157
实验一:熟悉标准控件 157
实验二:使用树形控件 157
实验三:列表控件 157
第10章 对话框 158
10.1对话框的基础知识 158
10.1.1对话框概述 158
10.1.2对话框分类 159
10.2消息对话框 160
10.2.1消息对话框概述 160
10.2.2消息对话框样式 160
10.2.3消息对话框的返回值 161
10.3模态对话框 162
10.3.1创建模态对话框 162
10.3.2创建对话框类 163
10.3.3添加程序代码 166
10.3.4模态对话框消息循环 170
10.3.5模态的终结 172
10.4非模态对话框 174
10.4.1创建非模态对话框 174
10.4.2创建过程分析 175
10.5通用对话框: 176
10.5.1颜色通用对话框 176
10.5.2字体通用对话框 177
10.5.3定制打开文件通用对话框 178
10.5.4查找和替换通用对话框 179
10.5.5打印通用对话框 180
小结 181
习题 181
上机指导 181
实验一:熟悉消息对话框 181
实验二:加法运算 182
实验三:创建非模态对话框 182
第11章 文档/视图界面 183
11.1基本概念 183
11.1.1概述 183
11.1.2单文档界面(SDI)应用程序 184
11.1.3多文档界面(MDI)应用程序 184
11.2单文档和多文档界面应用程序的实现 185
11.2.1利用AppWizard创建单文档界面应用程序框架 185
11.2.2程序框架中的主要类及相互关系 188
11.2.3文档类、视图类核心函数及作用 190
11.2.4新建、保存和打开的实现 191
11.2.5多文档界面应用程序框架 192
11.3窗口分割与多视 194
11.3.1窗口分割基础知识 194
11.3.2 Create——创建分割窗口 195
11.3.3 CreateStatic——创建静态分割窗口 196
11.3.4 CreateView——创剖建窗格 197
11.3.5 SetRowInfo和SetColumnInfo——设置窗格信息 197
11.3.6 OnDrawSplitter——绘制分割窗口特征 198
11.3.7 OnInvertTracker——绘制分割条 199
小结 200
习题 200
上机指导 201
实验一:熟悉单文档界面应用程序 201
实验二:动态分割窗口 201
实验三:静态分割窗口 201
第12章M FC动态链接库 202
12.1 DLL基本理论 202
12.1.1 DLL基本概念 202
12.1.2 DLL的分类 203
12.1.3 DLL的工作原理 203
12.2简单DLL示例 204
12.2.1一个简单的DLL 204
12.2.2导出函数 206
12.2.3导人函数 207
12.3访问动态链接库 208
12.3.1隐式链接 208
12.3.2显式链接 208
12.4常规DLL 210
12.4.1静态链接到MFC的常规DLL 210
12.4.2动态链接到MFC的常规DLL 213
12.4.3 DLL的链接使用 215
12.5扩展DLL 217
12.5.1生成DLL 217
12.5.2链接DLL 219
小结 220
习题 220
上机指导 220
实验一:创建一个简单的DLL 220
实验二:显式链接 220
第13章VC数据库编程 221
13.1数据库基础 221
13.1.1数据库的基本概念 221
13.1.2数据库管理系统(DBMS) 222
13.1.3结构化查询语言(SQL) 222
13.2数据库开发技术简介 225
13.2.1 ODBC API/MFC ODBC技术 225
13.2.2 DAO技术 226
13.2.3 ADO技术 226
13.3在Visual C++中使用ADO开发数据库应用程序 228
13.3.1 Viusal C+++对ADO的支持 228
13.3.2创建数据库与实例工程 229
13.3.3引人ADO对象 232
13.3.4连接数据源 232
13.3.5开发技术——连接对象(Connection) 233
13.3.6创建表并添加数据 235
13.3.7开发技术——ADO对象命令的执行 236
13.3.8开发技术——Recordset对象 237
13.3.9遍历、删除、编辑记录的实现 243
13.4使用ODBC数据源连接数据库 247
13.4.1手动实现设置ODBC数据源 247
13.4.2 ADO连接ODBC数据源 249
13.4.3 Visual C+++程序实现设置ODBC数据源 249
13.4.4使用Visual C+++程序设置ODBC数据源实例 250
小结 251
习题 251
上机指导 251
实验一:登录对话框 251
实验二:手动设置ODBC数据源 252
实验三:修改记录 252
第14章 多线程 253
14.1多线程基础 253
14.1.1进程与线程 253
14.1.2线程分类 254
14.2多线程编程 254
14.2.1 Win32 API线程处理 254
14.2.2工作者线程 255
14.2.3用户界面线程 257
14.3线程的终止 259
14.3.1线程的正常终止 259
14.3.2线程的异常终止 260
14.4线程的优先级与管理 260
14.4.1线程的优先级 260
14.4.2线程的优先级管理 262
14.4.3线程的调度 263
14.5线程之间的通信 264
14.5.1通信机制 264
14.5.2工作者线程通信 264
14.5.3用户界面线程通信 266
14.6线程的同步 269
14.6.1同步对象 269
14.6.2使用事件对象 271
14.6.3使用互斥对象 273
14.6.4使用临界区对象 274
14.6.5使用信号量对象 275
小结 277
习题 278
上机指导 278
实验一:工作者线程的设计和实现 278
实验二:线程同步对象使用 279
实验三:线程间自定义消息方式通信的设计与实现 279
第15章 串行通信原理与设计 281
15.1串行通信的基本概念 281
15.1.1串行通信的特点 281
15.1.2串行通信的传输方式 282
15.1.3数据纠错与检错 282
15.1.4传输速率与距离 283
15.2串行传输协议 283
15.2.1异步传输协议 284
15.2.2面向字符的同步传输协议 285
15.2.3面向比特的同步传输协议 286
15.3使用Windows API进行同步串口编程 288
15.3.1概述 288
15.3.2创建串口 288
15.3.3关闭串口 293
15.3.4发送数据 293
15.3.5接收数据 294
15.3.6定时接收数据的方法 294
15.4采用重叠I/O方式的编程方法 295
15.4.1定义全局变量 295
15.4.2创建串口 296
15.4.3发出读写操作 296
15.4.4读写线程函数的建立 297
15.4.5关闭串口 301
15.5采用事件驱动方式的编程方法 301
15.5.1定义全局变量 301
15.5.2打开串口及开启事件线程 302
15.5.3发送数据 304
15.5.4自定义消息函数读取数据 305
15.5.5关闭串口及关闭事件线程 307
小结 307
习题 308
上机实验 308
实验一:同步串口编程 308
实验二:重叠方式的串口编程 309
实验三:事件驱动方式的串口编程 309
第16章 Windows网络编程基础 311
16.1网络基础知识 311
16.1.1 OSI七层网络模型 311
16.1.2 TCP/IP协议 312
16.1.3 C/S编程模型 313
16.2网络编程基础 313
16.2.1 Sockets套接字 314
16.2.2网络字节顺序 314
16.3 Windows Sockets介绍 314
16.3.1 CAsyncSocket类 314
16.3.2 CSocket类 314
16.4网络程序实例应用 315
16.4.1 Winsock编程流程 315
16.4.2 TCP客户端程序 318
16.4.3 TCP服务器程序 326
小结 331
习题 331
上机指导 332
实验一:设计客户端和服务器端的界面 332
实验二:初始化客户端和服务器端 332
实验三:信息的发送和接收 333