目录 2
第一部分 Visual C++6.0基础编程 2
第1章 Visual C++6.0概述与编程基础 2
1.1 Visual C++6.0的新特征 2
1.2 Visual C++6.0的主窗口 4
1.3 Visual C++6.0的系统工具 5
1.3.1 菜单编辑器 5
1.3.2 加速键编辑器 8
1.3.3 资源符号 10
1.3.4 图形编辑器 11
1.3.5 工具栏编辑器 13
1.3.6 对话框编辑器 14
1.3.7 串编辑器 17
1.4 MfcApp应用程序 18
1.5 ConsoleApp应用程序 28
1.6 本章小结 31
第2章 图形设备接口 32
2.1 图形设备接口简介 32
2.2 设备描述表 33
2.3 坐标映射 35
2.3.1 设置映射模式 35
2.3.2 定义窗口的范围 36
2.3.3 定义视图区 36
2.3.4 设置视图区的原点 37
2.4 绘制基本图形 37
2.4.1 画点 37
2.4.2 画直线 38
2.4.3 画折线和曲线 39
2.4.4 画封闭曲线 41
2.5 画笔 49
2.5.1 创建画笔 49
2.5.2 画笔的属性 49
2.5.3 库存画笔 50
2.6.1 纯色画刷 57
2.6 画刷 57
2.6.2 阴影画刷 58
2.7 字体 64
2.7.1 显示文本 64
2.7.2 设置文本颜色 64
2.7.3 设置字符间距 65
2.7.4 设置文本对齐方式 65
2.7.5 得到文本度量 66
2.7.6 字体的创建 68
2.8 本章小结 73
第3章 菜单 74
3.1 编辑菜单资源 74
3.2 菜单消息响应 75
3.3 菜单的UI机制及显示状态的修改 78
3.4.1 获得菜单的指针 79
3.4 动态地改变菜单 79
3.4.2 给菜单中增加菜单项 80
3.4.3 删除菜单项 80
3.4.4 获得菜单的菜单项数 80
3.4.5 使菜单项有效或无效 81
3.5 上下文菜单 99
3.6 本章小结 103
第4章 系统的输入设备 104
4.1 鼠标 104
4.1.1 鼠标消息 104
4.1.2 鼠标消息处理 106
4.1.3 改变鼠标指针的形状 107
4.1.4 捕捉鼠标 108
4.2 键盘 115
4.2.1 键盘消息 115
4.2.2 字符消息 118
4.3 本章小结 125
5.1 工具栏 126
第5章 工具栏和状态栏 126
5.1.1 工具栏资源 127
5.1.2 按钮的状态 128
5.1.3 工具栏类 128
5.1.4 消息传递机制 130
5.1.5 普通工具栏示例 131
5.1.6 高级工具栏示例 137
5.2.1 CStatusBar类 150
5.2 状态栏 150
5.2.2 状态栏的创建和处理 151
5.2.3 状态栏与提示信息 151
5.2.4 状态指示器 153
5.2.5 状态栏示例一 154
5.2.6 状态栏示例二 156
5.3 本章小结 159
6.1 Visual C++的异常处理机制 161
第6章 MFC异常处理 161
6.2 设置自己的terminate()函数处理器 162
6.3 MFC中的异常类 163
6.3.1 CMemoryException 163
6.3.2 CNotSupportedException 164
6.3.3 CFileException 164
6.3.4 CArchiveException 165
6.3.5 CResourceException 165
6.3.6 COleException 165
6.3.7 CUserException 166
6.3.8 CDBException 166
6.3.9 CDaoException 166
6.3.10 CInternetException 166
6.3.11 Win 32系统级异常 166
6.4 本章小结 168
7.1 对话框资源 169
第7章 对话框和控件 169
7.2 对话框中的控件 170
7.2.1 CListBox 171
7.2.2 CComboBox 171
7.2.3 CStatic 171
7.2.4 CButton 171
7.2.5 CBitMapButton 171
7.2.6 CEdit 172
7.2.7 CScrollBar 172
7.3 CDialog类与对话过程函数调用顺序 172
7.4 DDX和DDV 174
7.5 预制对话框 175
7.6 模式对话框示例 183
7.7 无模式对话框示例 193
7.8 基于对话框的应用程序 207
7.9 本章小结 219
8.2 CSplitterWnd类 220
第8章 切分窗口、文档和多视图 220
8.1 切分窗口 220
8.3 切分窗口与多视图 221
8.4 单文档动态切分窗口示例 222
8.5 单文档静态切分窗口示例 225
8.6 文档和视图 231
8.6.1 CDocument类 231
8.6.2 CView类 232
8.6.3 文档—视图之间的相互作用函数 233
8.6.4 文档模板 235
8.7 多文档界面 237
8.8 动态切分的MDI应用程序 237
8.9 具有多个视图类、不带切分窗口的MDI应用程序 239
8.10 静态切分的MDI应用程序 252
8.11 本章小结 255
第9章 内存管理技术 258
9.1 内存管理的发展 258
第二部分 VisualC++6.0编程进阶 258
9.2 简单内存分配 259
9.2.1 栈结构分配 259
9.2.2 堆分配 259
9.3 Windows中的内存分配函数 261
9.4 分配可移动内存和可放弃内存 262
9.5 虚拟内存 264
9.6 共享内存 264
9.7 本章小结 267
第10章 多任务编程 268
10.1 进程、线程和优先级 268
10.2 工作线程和用户界面线程的创建 270
10.2.1 工作线程 270
10.2.2 使用工作线程 272
10.2.3 创建用户界面线程(UI) 277
10.4 使线程休眠 278
10.3 线程的挂起及唤醒 278
10.5 线程同步 279
10.5.1 使用事件对象 279
10.5.2 使用临界段 291
10.5.3 使用互斥量 294
10.5.4 使用信号量 298
10.6 线程的终止 304
10.7 如何编写基于进程的多任务操作 307
10.8 本章小结 310
第11章 动态链接库 311
11.1 动态链接库 311
11.1.1 动态链接和静态链接 311
11.1.2 创建动态链接库的原因 311
11.1.3 动态链接库的基础 312
11.2 普通的DLL 313
11.2.1 理解普通的D LL本质 313
11.2.3 实现TestDll应用程序 315
11.2.2 动态加载DLL 315
11.3 扩展MFC DLL 331
11.4 本章小结 333
第三部分 ActiveX编程 336
第12章 容器应用程序 336
12.1 创建框架容器应用程序 336
12.2 管理嵌入对象的大小和位置 342
12.3 使用鼠标选取项 344
12.4 本章小结 370
第13章 服务器应用程序 371
13.1 创建框架服务器应用程序 371
13.2 定制应用程序的资源 377
13.3 完善文档类和视图类 379
13.4 完善服务器项 388
13.5 运行Server应用程序 394
13.6 本章小结 399
14.1.1 完善框架自动化服务器应用程序 400
第14章 自动化 400
14.1 自动化服务器 400
14.1.2 定制自动化服务器的资源 405
14.1.3 完善文档类和视图类 405
14.1.4 定义服务器的属性和方法 408
14.2 自动化客户应用程序 418
14.2.1 完善框架自动化客户应用程序 418
14.2.2 定制自动化客户的资源 422
14.2.3 从类型库中创建类 423
14.2.4 完善客户应用程序的视图类 424
14.3 本章小结 433
第15章 ActiveX控件 434
15.1 ActiveX/OLE控件 434
15.2 ActiveX控件的属性、事件与方法 434
15.2.1 属性 434
15.2.2 事件 435
15.3.1 创建框架ActiveX控件 436
15.3 ActiveX控件示例 436
15.2.3 方法 436
15.3.2 初始化控件的大小以及在控件中显示当前时间 439
15.3.3 使控件动态显示当前时间 441
15.3.4 增加控件属性 442
15.3.5 增加标准事件 444
15.3.6 增加定制事件 446
15.3.7 增加控件方法 447
15.4 本章小结 463
16.1.1 常用术语 466
16.1.2 ODBC与标准化 466
第四部分 数据库编程 466
16.1 ODBC简介 466
第16章 ODBC 466
16.2 SQL语法基础 469
16.2.1 结构化查询语言 469
16.2.2 关系对象 470
16.2.4 SQL语法 471
16.2.3 SQL分类 471
16.3 ODBC的实现 476
16.3.1 配置ODBC环境 476
16.3.2 连接数据源 476
16.3.3 查询数据和数据源 479
16.3.4 装备和执行SQL请求 479
16.3.5 检索数据 480
16.3.6 释放ODBC环境 481
16.4 ODBC的应用 481
16.4.1 数据库的创建 482
16.4.2 配置ODBC环境 486
16.4.3 创建ODBC应用程序 488
16.5 操作数据库的内容 496
16.5.1 给表增加一个记录 496
16.5.2 如何删除记录 500
16.5.3 在数据库中查找数据 501
16.6 本章小结 512
第17章 MFC数据库类 513
17.1 MFC数据库类 513
17.2 CDatabase类 513
17.2.1 打开一个数据库连接 513
17.2.2 连接信息 516
17.2.3 用CDatabase执行SQL语句 516
17.2.4 用CDatabasee进行事务处理 516
17.3 CRecordset 518
17.3.1 构造一个记录集 520
17.3.2 使用RFX读写数据 520
17.3.3 刷新记录集 521
17.3.4 关闭记录集 522
17.3.5 在记录集中移动 522
17.3.6 成批取回行 523
17.3.7 改变记录集中的数据 527
17.3.9 使用语句参数 528
17.3.8 事务处理 528
17.3.10 记录集错误处理 529
17.4 CRecordView类 529
17.4.1 创建一个CRecordView 530
17.4.2 用CRecordView进行对话框数据交换 530
17.4.3 OnGetRecordset()函数 530
17.4.4 CRecordView::OnMove()函数 530
17.5 本章小结 531
18.2 ODBC与DAO的选择 532
第18章 DAO编程 532
18.1 DAO 532
18.3 使用DAO构造数据库应用程序 533
18.3.1 创建一个简单的网格视图应用程序 534
18.3.2 创建和运行应用程序 541
18.3.3 给应用程序增加报表 547
18.4 本章小结 561
附:CD-ROM说明 562