第1章 Visual C++6.0概述 1
1.1 Visual C++6.0概述 1
1.1.1 Visual C++简介 1
1.1.2 Visual C++6.0的主要特征 1
1.1.3 Visual C++6.0的软、硬件配置要求 2
1.2 Visual C++的集成开发环境 2
1.2.1 Microsoft Visual Studio 6.0的安装和配置 3
1.2.2 Visual C++6.0主框架窗口 6
1.3 资源和资源编辑器 13
1.3.1 资源编辑器 13
1.3.2 资源符号 14
1.3.3 资源符号浏览器 15
1.3.4 对话框编辑器 15
1.3.5 菜单编辑器 17
1.3.6 加速键编辑器 18
1.3.7 串编辑器 18
1.3.8 图形编辑器 18
1.3.9 工具条编辑器 19
第2章 C++语言基础 21
2.1 C++程序的运行 21
2.1.1 启动Visual C++6.0 21
2.1.2 创建文件 22
2.1.3 编辑C++源文件 22
2.1.4 程序的编译、链接与运行 23
2.1.5 关闭工作区 24
2.2 Visual C++6.0语言基本元素 24
2.2.1 主函数、语句和语句块 24
2.2.2 标识符与关键字 26
2.2.3 变量与常量 27
2.2.4 数据类型、运算符与表达式 29
2.3 数据的输入与输出(I/O流控制) 33
2.3.1 数据的输出 33
2.3.2 数据的输入 38
2.4 流程控制结构 40
2.4.1 顺序结构 40
2.4.2 条件结构 40
2.4.3 循环结构 43
2.4.4 中断、接续、转向及返回语句 47
2.5 函数及其调用 48
2.5.1 函数的定义 48
2.5.2 函数的调用 49
2.5.3 数组、指针与引用 52
2.6 继承、多态与虚函数 59
2.6.1 继承 60
2.6.2 多态与虚函数 61
2.7 C++的高级技术 63
2.7.1 函数模板 63
2.7.2 类模板 64
2.7.3 异常处理 64
第3章 MFC编程 66
3.1 MFC概述 66
3.1.1 MFC编程的特点 66
3.1.2 MFC的设计思想 67
3.1.3 MFC类的分层结构 67
3.1.4 MFC程序结构分析 68
3.1.5 MFC中的WinMain函数 70
3.1.6 MFC库消息映射 70
3.2 利用MFC AppWizard自动生成应用程序 71
3.2.1 工程及工作区的概念 71
3.2.2 利用向导生成应用程序框架 71
3.2.3 Visual C++工程文件的组成 77
3.3 配置Visual C++工程 78
3.3.1 General 79
3.3.2 Debug 79
3.3.3 C/C++ 80
3.3.4 Link 81
3.3.5 Resources 82
3.3.6 MIDL 82
3.3.7 Browse Info 83
3.3.8 Custom Build 83
3.3.9 Pre-link step 83
3.3.10 Post-build step 84
第4章 窗体 85
4.1 窗体概述 85
4.2 窗体的常用事件 85
4.2.1 WM_LBUTTONDOWN 85
4.2.2 WM_KEYDOWN和WM_CHAR 86
4.2.3 WM_CREATE 86
4.2.4 WM_CLOSE 86
4.2.5 WM_DESTORY 86
4.2.6 WM_QUIT 86
4.2.7 WM_PAINT 87
4.3 Visual C++中3种主要的窗体结构 87
4.3.1 SDI结构(单文档视图窗体) 87
4.3.2 MDI结构(多文档视图窗体) 87
4.3.3 Dialog结构(基于对话框的窗体) 88
4.4 文档/视图设计 89
4.4.1 文档/视图结构 89
4.4.2 CDocument文档类 95
4.4.3 CView视图类 100
4.4.4 集合类 103
第5章 资源应用 104
5.1 资源的简介 104
5.1.1 资源的导入与导出 104
5.1.2 资源模板 104
5.1.3 资源符号 105
5.2 菜单、加速键和串表 105
5.2.1 利用资源编辑器编辑菜单 106
5.2.2 映射菜单命令到成员函数 108
5.2.3 同菜单有关的类 110
5.2.4 创建加速键 117
5.2.5 串表 118
5.3 位图、光标与图标 120
5.3.1 位图概念 120
5.3.2 位图资源的创建与使用 121
5.3.3 使用位图 123
5.3.4 GDI位图和DIB位图 123
5.3.5 图标与光标 134
5.4 状态栏和工具栏 135
5.4.1 工具栏 135
5.4.2 工具栏类 136
5.4.3 创建工具栏 139
5.4.4 工具条的编程技术 142
5.4.5 状态栏 150
第6章 使用对话框 160
6.1 对话框的概述 160
6.1.1 对话框简介 160
6.1.2 对话框的构成 160
6.1.3 对话框的基类的成员函数 161
6.1.4 模态对话框和非模态对话框 161
6.2 模态对话框 162
6.2.1 创建工程 162
6.2.2 为应用程序添加对话框 162
6.2.3 修改对话框属性 163
6.2.4 在对话框中添加控件 164
6.2.5 创建对话框类 165
6.2.6 创建对话框 165
6.2.7 为对话框类添加控件成员变量 167
6.2.8 添加代码 169
6.2.9 消息响应函数 169
6.2.10 对话框的数据交换和检验机制 170
6.2.11 创建弹出模态对话框的菜单 171
6.3 非模态对话框 173
6.4 使用通用对话框 175
6.4.1 文件对话框 175
6.4.2 “查找和替换”对话框 176
6.4.3 “字体”对话框 177
6.4.4 “编辑颜色”对话框 178
6.4.5 “打印”对话框 178
6.4.6 “页面设置”对话框 179
6.5 消息对话框 186
6.6 属性页对话框&1 87
6.6.1 CPropertySheet类 187
6.6.2 CPropertyPage类 190
6.6.3 创建一般属性页对话框 192
6.6.4 创建向导对话框 196
6.7 ActiveX控件属性页 200
6.7.1 实现默认属性页 201
6.7.2 将控件添加到属性页 201
6.7.3 自定义DoDataExchange函数 201
第7章 基本控件 203
7.1 静态类文本控件(Static Text) 203
7.1.1 静态控件的使用 203
7.1.2 CStatic类的主要成员函数 203
7.2 文本编辑控件(Edit Box) 204
7.2.1 文本编辑控件的使用 204
7.2.2 CEdit类的主要成员函数 204
7.3 按钮控件(Button) 208
7.4 列表框控件(List Box) 209
7.4.1 列表框(ListBox) 209
7.4.2 列表框控件的主要属性 210
7.4.3 列表框控件的方法 211
7.4.4 ClistBox类的主要成员函数 214
7.5 组合框控件(Combo Box) 218
7.6 滑块控件(Slider) 219
7.7 滚动条控件(Scroll Bar) 220
7.7.1 滚动条控件的使用 220
7.7.2 CScrollBar类的主要成员函数 221
7.8 图片控件(Picture Box) 223
7.9 进度条控件(Progress) 224
7.10 基本控件实例 225
第8章 键盘和鼠标 237
8.1 鼠标消息和鼠标消息处理 237
8.1.1 用户区鼠标消息 237
8.1.2 非用户区鼠标消息 239
8.2 区域探测 240
8.3 键盘和键盘消息处理 245
8.3.1 键盘消息 247
8.3.2 键盘字符的输入与显示 248
8.3.3 输入焦点 251
8.3.4 击键消息 252
8.3.5 虚拟键代码 253
8.3.6 Shift状态及切换 254
8.4 计时器 255
第9章 图形 257
9.1 绘图的基础知识 257
9.2 图形设备接口GDI 257
9.2.1 GDI设备 257
9.2.2 设备环境类(CDC) 258
9.2.3 GDI对象 259
9.3 屏幕绘图的主要函数 259
9.4 设备上下文 262
9.5 文本处理 263
9.5.1 CFont类概述 263
9.5.2 主要成员函数 264
9.6 画笔和画刷 272
9.6.1 画笔 272
9.6.2 CPen类 273
9.6.3 画笔的创建与调用 273
9.6.4 画刷 274
9.6.5 CBrush类 274
9.6.6 画刷的创建与调用 274
9.7 映射模式 278
9.7.1 映射模式简介 278
9.7.2 约束映射模式和非约束映射模式 279
9.7.3 坐标转换 279
第10章 打印和打印预览 281
10.1 打印 281
10.1.1 默认基本打印 281
10.1.2 实现高级打印 282
10.1.3 MFC打印体系结构 283
10.2 打印预览 288
10.2.1 打印预览过程 288
10.2.2 支持打印预览 288
10.2.3 高级打印预览 289
10.3 黑白打印预览 289
第11章 文件操作 298
11.1 串行化基础知识 298
11.1.1 MFC程序框架支持的文档结构 298
11.1.2 Seralize()函数 301
11.1.3 CArchive类 302
11.1.4 直接使用串行化 305
11.2 文件CFile类 305
11.2.1 打开和关闭文件 306
11.2.2 文件的定位 306
11.2.3 文件的读写操作 308
11.2.4 文件的管理 309
11.2.5 文件异常 320
11.3 文件对话框 328
11.3.1 使用CFileDialog 329
11.3.2 选择多个文件 330
11.3.3 设计自己所需的文件对话框 330
11.4 内存文件类 330
11.4.1 CMemFile类 330
11.4.2 CSbaredFile类 331
第12章 多线程 333
12.1 基本概述 333
12.1.1 进程 333
12.1.2 线程 334
12.2 两种重要的线程 336
12.2.1 用户界面线程 336
12.2.2 工作者线程 341
12.3 线程的操作 345
12.3.1 创建工作者线程 345
12.3.2 线程函数 346
12.3.3 创建UI线程 346
12.3.4 线程的终止 347
12.3.5 线程的管理和操作 350
12.3.6 线程间的通信 365
12.3.7 线程的同步 371
第13章 动态链接库 375
13.1 动态链接库概念 375
13.1.1 静态库和动态库 376
13.1.2 动态链接库的分类 376
13.1.3 DLL的建立 377
13.1.4 DLL的调用 378
13.1.5 动态链接库编程 379
13.2 DLL的出入口函数 380
13.2.1 DllMain()函数 380
13.2.2 DLL的导出函数 381
13.3 两种加载DLL的方式 382
13.3.1 隐式链接 383
13.3.2 显式链接 383
13.4 MFC中的DLL 384
13.4.1 导出函数调用约定 385
13.4.2 函数名修饰约定 386
13.4.3 模块定义文件(DEF文件) 387
13.5 Visual C++6.0自动生成的Win32 DLL 387
13.5.1 空的DLL工程 388
13.5.2 简单的DLL工程 388
13.5.3 导出了变量、函数和类的DLL 388
13.6 MFC AppWizard生成的DLL 388
13.6.1 静态链接MFC的Regular DLL 389
13.6.2 动态链接MFC的Regular DLL 389
13.6.3 动态链接库的MFC扩展DLL 389
13.7 动态链接库实例 390
13.8 使用钩子(Hook)函数 395
13.8.1 钩子的基本原理 397
13.8.2 钩子函数的类型 397
13.8.3 钩子的安装与卸载 400
第14章 网络编程 412
14.1 网络编程的基础知识 412
14.1.1 Socket简介 413
14.1.2 Sockets编程 413
14.1.3 Windows Socket发展 413
14.1.4 Windows Sockets分类 414
14.1.5 Windows Sockets API 414
14.1.6 MFC Socket类 416
14.2 网络应用程序 417
14.2.1 网络应用程序的基本模型 417
14.2.2 建立socket对象 417
14.2.3 建立连接 418
14.2.4 发送和接收数据 418
14.2.5 监听socket 418
14.2.6 为客户端连接请求建立socket队列 418
14.3 WinSock类 419
14.3.1 CASyncSocket 419
14.3.2 CSocket 424
14.4 Windows Sockets的实现 426
14.4.1 套接字的类型 426
14.4.2 基于TCP(面向对象)的socket编程 426
14.4.3 基于UDP(面向无连接)的socket编程 427
14.5 网络编程的实现 427
14.6 利用MSComm控件进行串口编程 442
14.6.1 MSComm控件介绍 442
14.6.2 利用MSComm控件编程的基本流程 445
14.7 WinInet编程技术 450
14.7.1 WinInet使用方法和原则 451
14.7.2 WinInet的其他功能 453
14.7.3 创建简单的Internet客户应用程序 454
第15章 数据库开发 4458
15.1 概述 458
15.1.1 数据库的基本概念 458
15.1.2 数据库相关技术 459
15.1.3 数据库应用程序的开发步骤 464
15.1.4 数据库管理 465
15.2 设计创建和维护Access数据库 466
15.3 标准的SQL语句 472
15.3.1 SQL功能与特性 472
15.3.2 SQL语法的分类 473
15.3.3 SQL的对象 474
15.3.4 SQL的Select查询语句 474
15.4 ODBC API 479
15.4.1 ODBC简介 479
15.4.2 句柄 480
15.4.3 异常处理 480
15.4.4 ODBC的一致性 481
15.4.5 ODBC数据源的创建 482
15.4.6 使用ODBC所需要的文件 483
15.5 用MFC访问ODBC 484
15.5.1 CDatabase类 484
15.5.2 CRecordset类 486
15.5.3 CRecordView类 492
15.6 DAO编程 508
15.6.1 DAO概述 508
15.6.2 DAO内部结构 509
15.6.3 应用DAO编程 510
15.7 MFC的OLE DB 512
15.7.1 基本OLE DB结构 512
15.7.2 OLE DB客户模板结构 512
15.7.3 OLE DB提供者模板结构 513
15.8 ADO(ActiveX Data Objects)技术 516
15.8.1 ADO的历史 516
15.8.2 ADO的特点 516
15.8.3 ADO对象 517
15.8.4 ADO集合 522
15.8.5 ADO错误代码 523
15.8.6 ADO编程模型 524
15.8.7 ADO接口 525
15.8.8 ADO类型库 525
15.8.9 利用ADO查询并操作数据库实例 528
第16章 FTP客户端程序 542
16.1 FTP协议基础 542
16.1.1 FTP工作原理 542
16.1.2 FTP命令 546
16.2 FTP客户端系统实现 549
16.2.1 建立工程项目 550
16.2.2 实例分析 551