第1章 Visual C++ 6.0入门 1
1.1 Visual C++ 6.0概述 2
1.1.1 Visual C++ 6.0的技术构成 2
1.1.2 Visual C++ 6.0的安装 2
1.2 简单的例程 6
1.2.1 Win32控制台程序“Hello” 6
1.2.2 单文档界面Hello应用程序 8
1.3 本章习题 11
第2章 C/C++基础知识 13
2.1 一个简单的C++ 14
2.2 C/C++语言基础 16
2.2.1 标识符和关键字 16
2.2.2 常量 17
2.2.3 变量 18
2.3 C/C++的数据类型与表达式 19
2.3.1 数据类型 20
2.3.2 运算符 20
2.3.3 函数 21
2.3.4 表达式 21
2.4 C/C++中类的概念 22
2.4.1 对象 22
2.4.2 类 23
2.4.3 类的构造函数和析构函数 23
2.4.4 重载 25
2.4.5 继承 26
2.5 输入输出 28
2.6 本章习题 29
第3章 Visual C++ 6.0中的MFC 31
3.1 什么是MFC 32
3.2 MFC的设计原理 32
3.3 MFC的优势和层次设计 32
3.3.1 MFC的优势 32
3.3.2 文件服务类 33
3.3.3 窗口类 34
3.3.4 图形类 36
3.3.5 数据库支持类 36
3.4 MFC类的文档/视图类 37
3.4.1 CWinApp类 38
3.4.2 CView类 41
3.4.3 CframeWnd类 43
3.4.4 CDocument类 46
3.5 MFC的消息和命令 48
3.5.1 消息的种类和处理 48
3.5.2 消息的发送 51
3.5.3 消息映射机制 51
3.5.4 用户自定义消息 52
3.6 本章习题 53
第4章 对话框和公用控件 55
4.1 模式对话框和非模式对话框 56
4.1.1 使用对话编辑器 56
4.1.2 CDialog类 60
4.1.3 对话框的数据交换和校验 62
4.1.4 创建一个对话框应用程序 62
4.2 Windows控件资源 63
4.2.1 按钮控件 64
4.2.2 文本框控件 65
4.2.3 列表框和组合框 68
4.2.4 进度条控件 73
4.2.5 滑块控件 74
4.3 对话框及控件的使用 76
4.3.1 创建DlgTest工程 76
4.3.2 对话框项目Dlgtest的结构 77
4.3.3 CAboutDlg类 77
4.3.4 CDlgTestApp类 78
4.3.5 CDlgTestDlg类 80
4.3.6 运行示例 87
4.4 本章习题 88
第5章 单文档应用程序 89
5.1 利用MFC创建单文档程序 90
5.2 CDocument类 92
5.2.1 在程序中声明一个文档类 92
5.2.2 CDocument类的成员函数 93
5.2.3 文档和消息处理 93
5.2.4 InitInstance()函数对文档的重要性 94
5.3 CView类 94
5.3.1 声明一个视图类 95
5.3.2 CView的成员函数 96
5.3.3 使用视图和消息 96
5.3.4 AfxGetMainWnd()函数 97
5.4 在单文档应用程序中使用控件 97
5.5 例题SDI_ActiveX详解 99
5.5.1 CSDIActiveXApp类 99
5.5.2 CSDI_ActiveXView类 101
5.6 本章习题 104
第6章 多文档应用程序 105
6.1 多文档应用程序框架 106
6.1.1 文档类 106
6.1.2 使用多文档类型 107
6.1.3 文档的多个视图 107
6.1.4 多文档界面应用程序的框架类 107
6.1.5 多文档模板类 108
6.2 窗口的拆分 108
6.2.1 CSplitterWnd类 108
6.2.2 动态拆分 109
6.2.3 静态拆分 109
6.3 多文档应用程序中的数据读写 110
6.4 本章习题 112
第7章 Visual C++ 6.0中的常用数据I/O方法 115
7.1 C语言文件读写方法 116
7.1.1 文件指针 116
7.1.2 文件的打开和关闭 117
7.1.3 文件读写 118
7.1.4 文件定位 119
7.2 串行化 120
7.2.1 数据的保存 120
7.2.2 数据的读取操作 121
7.3 CStdioFile类 121
7.3.1 打开一个文件 121
7.3.2 文本读取 122
7.3.3 文本保存 122
7.4 数据I/O的例子 122
7.5 本章习题 126
第8章 打印和打印预览 127
8.1 Windows API和MFC的打印机支持 128
8.1.1 打印机信息 128
8.1.2 文本和字符 129
8.2 用MFC编程实现打印 130
8.2.1 打印机过程 130
8.2.2 实现分页 131
8.2.3 CPrintInfo类 131
8.2.4 页眉页脚的打印 131
8.2.5 打印图像 132
8.3 用MFC实现打印预览 132
8.3.1 打印预览过程 132
8.3.2 修改打印预览 133
8.3.3 增强打印预览 133
8.3.4 CPrintDialog类 133
8.4 本章习题 133
第9章 状态栏、工具栏、树视图控件和列表控件 135
9.1 状态栏 136
9.1.1 创建状态栏 136
9.1.2 使用状态栏 137
9.2 工具栏 138
9.2.1 创建工具栏 139
9.2.2 使用工具栏 140
9.3 树视图控件 141
9.3.1 创建树形控件 141
9.3.2 使用树形控件 144
9.4 列表视图控件 145
9.4.1 创建列表视图控件 145
9.4.2 使用列表视图控件 148
9.5 本章习题 151
第10章 多线程和多进程 153
10.1 多线程 154
10.1.1 创建线程 154
10.1.2 线程之间的通信 157
10.1.3 线程之间同步 162
10.1.4 线程终止 164
10.2 多进程 164
10.2.1 创建进程 165
10.2.2 进程之间的通信 166
10.2.3 终止进程 169
10.3 两个简单的例子 170
10.3.1 创建Multithreads项目 170
10.3.2 多进程项目Multithreads及ProcessPipe 174
10.4 本章习题 177
第11章 动态链接库 179
11.1 DLL概述 180
11.1.1 动态库和静态库 180
11.1.2 加载DLL 180
11.2 Visual C++ 6.0的常规DLL 181
11.2.1 常规DLL的内部 181
11.2.2 动态加载DLL 181
11.2.3 使用DLL的全局C++对象 182
11.3 MFC扩展DLL 183
11.3.1 MFC扩展DLL的内部 183
11.3.2 扩展DLL的导出类 183
11.3.3 AFX_EXT_CLASS 183
11.3.4 导出资源 184
11.3.5 DLL中封装文档和视图 184
11.4 DLL的创建和访问 184
11.4.1 创建MFC DLL 185
11.4.2 创建Win32 DLL 186
11.4.3 隐含方式链接 186
11.4.4 显示方式链接 187
11.5 动态链接库的例子 187
11.6 本章习题 193
第12章 动态数据交换和邮槽 195
12.1 动态数据交换DDE 196
12.1.1 DDE的概念 196
12.1.2 DDE术语 196
12.1.3 DDEML和DDE事件过程 197
12.2 动态数据交换的例子 198
12.2.1 创建对话框界面应用程序 198
12.2.2 DDE初始化 201
12.2.3 实现DDE 201
12.2.4 编译程序 203
12.3 邮槽 205
12.4 邮槽的例子 206
12.4.1 邮槽服务器 206
12.4.2 邮槽客户端 207
12.4.3 邮槽的使用 209
12.5 本章习题 209
第13章 串行口和并行口 211
13.1 串行口通信方式 212
13.1.1 串行通信 212
13.1.2 串口的打开和关闭 212
13.1.3 串行口收发数据 214
13.1.4 Visual Studio中的串行控件 215
13.2 使用串行通信控件 215
13.2.1 创建应用程序 216
13.2.2 串行通信控件的使用 216
13.3 并行口通信方式 219
13.3.1 并行端口的介绍 219
13.3.2 标准并行端口 219
13.3.3 并行口输入与输出 222
13.4 本章习题 223
第14章 网络 225
14.1 TCP/IP协议Winsock 226
14.1.1 TCP/IP简单介绍 226
14.1.2 Windows Socket API 226
14.1.3 CAsyncSocket类 227
14.1.4 CSocket类 227
14.2 网络通信应用实例 228
14.2.1 创建对话框应用程序 228
14.2.2 运行应用程序 230
14.3 ChtmeView类 231
14.3.1 创建CHtmlView类项目 231
14.3.2 创建浏览器 232
14.3.3 使用Web浏览器控件 233
14.4 动态HTML 236
14.4.1 HTML基础 236
14.4.2 Visual C++对DHTML的支持 238
14.5 本章习题 239
第15章 数据库和SQL语句 241
15.1 数据库系统概述 242
15.1.1 数据库的基本概念 242
15.1.2 数据库系统的特点和种类 243
15.1.3 结构化查询语言SQL 243
15.2 SQL语句 244
15.2.1 创建语句Create 244
15.2.2 修改语句Alter 245
15.2.3 删除语句Drop 245
15.3 数据控制语言 245
15.3.1 授权语句Grant 246
15.3.2 撤销权限语句Revoke 246
15.4 数据操作语言 246
15.4.1 查询语句Select 246
15.4.2 插入语句Insert 247
15.4.3 删除记录语句Delete 248
15.4.4 更新语句Update 248
15.5 本章习题 248
第16章 Visual C++ 6.0开发ODBC数据库应用 249
16.1 ODBC基础知识 250
16.1.1 ODBC标准及API 250
16.1.2 ODBC接口 251
16.1.3 使用ODBC获取数据 253
16.2 使用ODBC创建数据库应用程序 254
16.2.1 添加数据源 254
16.2.2 创建对话框应用程序 255
16.2.3 初始化程序界面 257
16.2.4 刷新数据库 259
16.2.5 添加、删除、修改记录 260
16.3 MFC中的ODBC数据库类 263
16.3.1 CDataBase类 263
16.3.2 CRecordSet类 264
16.4 创建MFC数据库应用程序 264
16.4.1 使用AppWizard 264
16.4.2 创建视图 267
16.4.3 创建数据库集合类(CRecordSet)对象 268
16.4.4 数据的遍历、查找 272
16.4.5 数据的添加、删除和更新 273
16.5 基于MFC的数据库例题 276
16.6 本章习题 277
第17章 利用ADO方式访问数据库 279
17.1 ADO概述 280
17.1.1 OLE DB和ADO 280
17.1.2 ADO对象 280
17.2 ADO控件的使用 281
17.3 使用ADO创建完整的数据库应用程序 284
17.3.1 创建应用程序框架 284
17.3.2 实现初始化数据 285
17.3.3 数据存储 287
17.3.4 添加记录 287
17.3.5 删除记录 288
17.3.6 编译运行 288
17.4 本章习题 289
第18章 图形 291
18.1 设备环境 292
18.1.1 设备环境的概念 292
18.1.2 使用设备环境 293
18.1.3 设置图形模式 293
18.2 画笔和画刷 294
18.2.1 画笔 294
18.2.2 画刷 295
18.3 文本字体 297
18.3.1 文本的颜色 297
18.3.2 文本对齐 297
18.3.3 文本的字体及使用 297
18.4 图标 300
18.4.1 图标的类型 300
18.4.2 使用图标 300
18.5 鼠标绘图 302
18.5.1 鼠标消息的捕捉 302
18.5.2 鼠标输入 303
18.5.3 图形重画 304
18.5.4 图形绘制 304
18.6 字体动画和鼠标绘图的例题 307
18.6.1 创建单文档应用程序 307
18.6.2 坐标转换 308
18.6.3 画静态图形 308
18.6.4 用鼠标描绘直线 309
18.6.5 实现字体动画效果 310
18.7 本章习题 312
第19章 位图和图像 315
19.1 调色板 316
19.1.1 逻辑调色板 316
19.1.2 使用调色板 316
19.2 位图 317
19.2.1 GDI位图 317
19.2.2 设备无关位图 317
19.3 位图动画 318
19.3.1 动画基础 318
19.3.2 动画文字和图片动画 318
19.4 图像的显示 319
19.4.1 位图内存和视频内存 319
19.4.2 CBitmap类 319
19.4.3 位图的加载和绘制 319
19.5 图像的几何变换 323
19.5.1 图像平移 323
19.5.2 图像缩放 326
19.5.3 图像旋转 327
19.6 本章习题 337
第20章 音频和视频 339
20.1 Windows多媒体原理与使用 340
20.2 MCI播放音频文件 340
20.2.1 高级音频函数 341
20.2.2 MCI接口使用 342
20.3 低级音频函数 342
20.3.1 低级音频服务 342
20.3.2 低级音频服务函数的使用 343
20.4 开发视频应用程序 344
20.4.1 播放AVI视频文件 344
20.4.2 播放VCD视频文件 345
20.5 本章习题 348
第21章 ActiveX控件 349
21.1 ActiveX基础知识 350
21.1.1 ActiveX控件的基本组成部分 350
21.1.2 使用ActiveX控件 350
21.2 ActiveX控件的属性、事件和方法 350
21.2.1 ActiveX控件容器 350
21.2.2 事件 351
21.2.3 方法 351
21.2.4 属性 351
21.2.5 属性页 352
21.3 创建ActiveX控件 352
21.3.1 创建基本程序框架 352
21.3.2 添加属性 354
21.3.3 添加方法 354
21.3.4 添加事件 355
21.3.5 修改属性页 355
21.4 使用ActiveX控件 356
21.5 本章习题 358
第22章 ActiveX Automation 361
22.1 ActiveX自动化服务器和自动化控制器 362
22.1.1 ActiveX自动化服务器 362
22.1.2 ActiveX自动化控制器 362
22.2 ActiveX Automation开发 362
22.2.1 实现Automation Server 362
22.2.2 实现Automation Controller 366
22.3 ActiveX Automation例题 369
22.4 本章习题 369
第23章 COM和COM+ 371
23.1 COM的概念 372
23.1.1 COM的发展历程及现状 372
23.1.2 COM的对象与接口 373
23.1.3 COM模型 374
23.2 Visual C++对COM的支持以及开发 375
23.2.1 类库支持:MFC和ATL 375
23.2.2 使用MFC开发COM组件应用 375
23.2.3 ATL开发COM及使用 380
23.3 本章习题 384
第24章 数值计算和数值排序 385
24.1 复数运算 386
24.1.1 定义复数类 386
24.1.2 复数类的使用 389
24.2 实数矩阵基础运算 392
24.2.1 矩阵类 393
24.2.2 实数矩阵运算 395
24.2.3 实数矩阵的转置 397
24.2.4 矩阵的逆矩阵运算 398
24.2.5 实对称矩阵的特征根 400
24.2.6 矩阵运算的使用 403
24.3 随机数的产生 405
24.4 常用排序算法 407
24.4.1 冒泡法 407
24.4.2 快速排序法 407
24.4.3 希尔排序 408
24.4.4 简单选择法排序 409
24.5 本章习题 409
第25章 Visual C++和其他语言的接口 411
25.1 Visual C++中使用汇编语言 412
25.1.1 Win32汇编 412
25.1.2 Visual C++中内联汇编 412
25.1.3 Visual C++内联汇编的例子 413
25.2 Visual C++中调用Matlab函数 414
25.3 VC++中调用exe应用程序 416
25.3.1 ShellExecute方式 417
25.3.2 WinExec方式 417
25.4 本章习题 418
第26章 应用程序的调试和异常处理 421
26.1 集成开发环境的调试功能 422
26.2 使用断点和单步执行 422
26.3 调试时使用Watch功能 423
26.4 调试时使用Threads和Exceptions对话框 424
26.5 检测内在泄露 425
26.6 堆栈的利用和异常处理 427
26.7 本章习题 430
第27章 小型饭店餐饮管理系统 431
27.1 系统设计 432
27.2 详细界面设计 433
27.3 数据库设计 437
27.4 应用程序的主要类 441
27.4.1 主程序App类 441
27.4.2 主界面类 444
27.4.3 调用单据类 445
27.5 结帐对话框类 446
27.5.1 类声明 447
27.5.2 成员函数 448
27.6 CPosDlg对话框类 457
27.7 CStatDlg对话框类 459
27.8 本章习题 464
第28章 局域网聊天程序 465
28.1 UDP协议和技术 466
28.2 点对点形式和多播形式 466
28.3 程序实现 467
28.3.1 定义聊天类 467
28.3.2 聊天类及其成员函数 468
28.3.3 接收信息端线程函数 473
28.3.4 发送信息端线程函数 473
28.3.5 IP地址相关函数 474
28.4 本章习题 476