第1章 Visual C++ 6.0开发环境 1
1.1 Visual C++6.0概述 2
1.2 Visual C++6.0开发环境 2
1.2.1 Visual C++6.0开发环境布局 2
1.2.2 Visual C++ 6.0菜单介绍 3
1.2.3 Visual C++6.0工具栏介绍 13
1.2.4 Visual C++ 6.0控件面板介绍 15
1.2.5工作区窗口介绍 16
1.2.6代码编辑器介绍 18
1.2.7输出窗口介绍 19
1.3定制个性化开发环境 19
1.3.1利用“Customize”窗口设置开发环境 20
1.3.2 利用“Options”窗口设置开发环境 25
1.3.3扩展IDE集成开发环境 32
1.4代码编辑器使用技巧 37
1.4.1在代码编辑器中实现录制功能 37
1.4.2检测代码中的括号是否匹配 38
1.4.3对齐零乱的代码 38
1.4.4显示函数参数 38
1.4.5完全取词功能不可用 38
1.4.6自定义关键字 38
1.5本章小结 38
第2章 C++语言基础 39
2.1构建开发环境 40
2.1.1创建简单的工程 40
2.1.2工程文件分析 41
2.1.3编译、连接和运行工程 41
2.2代码编写规范 42
2.2.1在程序中规范使用注释 42
2.2.2按照命名规范书写代码 42
2.2.3统一代码缩进格式 43
2.3 C++基本要素 43
2.3.1深入理解标识符 43
2.3.2 C++中常用关键字介绍 43
2.3.3定义和使用常量 44
2.3.4深入理解变量 45
2.4数据类型 46
2.4.1 C++简单数据类型介绍 46
2.4.2布尔类型 46
2.4.3字符串类型 47
2.4.4数组类型 49
2.4.5枚举类型 52
2.4.6结构体类型 53
2.4.7 C++指针类型 54
2.4.8使用引用类型为变量设置别名 55
2.4.9 定义类型别名 56
2.5数据类型转换 56
2.6运算符 56
2.6.1使用赋值运算符为变量赋值 57
2.6.2使用算术运算符设计简单计算器 58
2.6.3使用关系运算符进行条件判断 59
2.6.4使用逻辑运算符描述复杂逻辑关系 60
2.6.5理解逗号运算符 61
2.6.6 应用条件运算符简化代码 61
2.6.7 sizeot运算符 61
2.6.8 new和de lete运算符 62
2.7表达式 62
2.8结合性与优先级 63
2.9本章小结 64
第3章 算法与语句 65
3.1算法 66
3.1.1什么是算法 66
3.1.2算法的描述方法 66
3.1.3 3种程序的控制结构 67
3.1.4算法应用举例 68
3.2语句 69
3.3顺序语句 69
3.4分支语句 70
3.4.1 if判断语句 70
3.4.2 switch语句 74
3.5循环语句 76
3.5.1 使用跳转语句goto实现循环 77
3.5.2使用while语句根据关系表达式实现循环 77
3.5.3使用do...while语句根据关系表达式实现循环 78
3.5.4使用for语句根据循环次数实现循环 79
3.6其他控制语句 81
3.6.1强制结束语句break 81
3.6.2继续语句continue 82
3.6.3退出语句exit 83
3.7异常处理语句 84
3.8本章小结 86
第4章 面向过程与面向对象编程 87
4.1函数 88
4.1.1 函数的声明和定义 88
4.1.2为函数设置参数 89
4.1.3为函数参数设置默认值 89
4.1.4使用指针/引用参数 89
4.1.5使用数组参数 91
4.1.6为函数设置动态参数 91
4.1.7定义内联函数 92
4.1.8定义和使用重载函数 93
4.1.9应用函数模板定义通用函数 94
4.1.10应用函数指针调用不同的函数 94
4.1.11函数的递归调用 95
4.2类和对象 95
4.2.1深入理解类的概念 96
4.2.2类的声明 96
4.2.3对象的声明和实例化 96
4.2.4类成员的访问 96
4.2.5类成员的保护 96
4.2.6构造函数的定义及调用 97
4.2.7析构函数的定义及调用过程分析 99
4.2.8类的继承 100
4.2.9为类定义内联方法 106
4.2.10定义静态成员数据和静态方法 106
4.2.11定义友元类和友元函数 107
4.2.12重载运算符 109
4.3异常处理 111
4.3.1异常捕捉 111
4.3.2抛出异常 112
4.4本章小结 113
第5章 对话框应用程序 114
5.1构建对话框应用程序 115
5.2对话框的操作 118
5.2.1创建对话框 118
5.2.2显示对话框 119
5.2.3设置对话框属性 121
5.3对话框中控件的操作 123
5.3.1添加控件 123
5.3.2选择控件 124
5.3.3复制控件 124
5.3.4删除控件 124
5.3.5对齐控件 124
5.3.6添加控件成员变量 126
5.3.7控件的子类化 128
5.4添加数据成员和成员函数 129
5.4.1添加普通的数据成员 130
5.4.2添加普通的成员函数 130
5.4.3添加消息处理函数 131
5.5 Windows消息对话框 132
5.6 Windows通用对话框 133
5.6.1使用文件对话框获取磁盘中的文件 133
5.6.2使用“查找/替换”对话框查找并替换编辑框中的文本 135
5.6.3使用“字体”对话框获取字体信息 137
5.6.4使用“打印”对话框获取打印机设备上下文 139
5.6.5使用“页面设置”对话框设计打印纸大小 141
5.7本章小结 143
第6章 文档/视图应用程序 144
6.1构建文档/视图应用程序 145
6.2文档、视图结构的创建 146
6.2.1文档模板的创建 146
6.2.2文档的创建 147
6.2.3框架与视图的创建 148
6.3文档模板 150
6.3.1文档管理器 150
6.3.2文档模板 151
6.4文档对象 152
6.4.1文档对象的主要方法 152
6.4.2文档对象的序列化 152
6.4.3文档的初始化 153
6.4.4文档的命令处理 154
6.4.5文档的销毁 155
6.5视图对象 157
6.5.1视图对象主要方法 157
6.5.2视图对象的初始化 157
6.5.3视图的销毁 158
6.6框架对象 160
6.6.1 框架对象的主要方法 160
6.6.2框架的初始化 161
6.6.3框架的命令消息处理 161
6.7视图分割 162
6.7.1划分子窗口 162
6.7.2任意划分子窗口 164
6.8视图窗口的高级应用 168
6.8.1隐藏视图创建选择窗口 168
6.8.2动态创建视图窗口 168
6.8.3在视图窗口中显示网页 170
6.9本章小结 172
第7章 控件 173
7.1静态文本控件(StaticText) 174
7.1.1静态文本控件概述 174
7.1.2静态文本控件的主要属性 174
7.1.3静态文本控件的主要方法、事件 175
7.1.4静态文本控件在界面中的应用 176
7.2编辑框控件(Edit Box) 177
7.2.1编辑框控件概述 178
7.2.2编辑框控件的主要属性 178
7.2.3编辑框控件的主要方法、事件 178
7.2.4使用编辑框控件设计登录对话框 181
7.3按钮控件(Button) 182
7.3.1按钮控件概述 183
7.3.2按钮控件的主要属性 183
7.3.3按钮控件的主要方法、事件 183
7.3.4简单计算器程序设计 186
7.4列表框控件(List Box) 187
7.4.1列表框控件概述 187
7.4.2列表框控件的主要属性 187
7.4.3列表框控件的主要方法、事件 188
7.4.4操作列表框控件中的数据 190
7.5组合框控件( Combo Box) 192
7.5.1组合框控件概述 192
7.5.2组合框控件的主要属性 192
7.5.3组合框控件的主要方法、事件 193
7.5.4自动调整组合框的列表宽度 194
7.6列表视图控件(List Control) 195
7.6.1列表视图控件概述 195
7.6.2列表视图控件的主要属性 196
7.6.3列表视图控件的主要方法、事件 196
7.6.4以列表视图控件的图标风格显示数据 199
7.7树视图控件(Tree Control) 200
7.7.1树视图控件概述 200
7.7.2树视图控件的主要属性 200
7.7.3树视图控件的主要方法、事件 200
7.7.4利用树视图控件显示树状结构 205
7.8本章小结 206
第8章 菜单、工具栏和状态栏设计 207
8.1菜单设计 208
8.1.1菜单资源设计 208
8.1.2菜单项的命令处理 212
8.1.3菜单项的更新机制 214
8.1.4菜单类介绍 215
8.1.5使用菜单类创建菜单 221
8.1.6设计弹出式菜单 222
8.2工具栏设计 223
8.2.1工具栏资源设计 224
8.2.2工具栏的命令处理 225
8.2.3工具栏类(CToolBar)介绍 226
8.2.4使用工具栏类创建工具栏 229
8.2.5工具栏控制类(CToolBarCtrl)介绍 232
8.2.6使用工具栏控制类创建工具栏 234
8.3状态栏设计 235
8.3.1状态栏类(CStatusBar)介绍 235
8.3.2使用状态栏类创建状态栏 238
8.3.3在状态栏中添加进度条控件 239
8.3.4状态栏控制类(CStatusBarCtrl)介绍 240
8.3.5使用状态栏控制类创建状态栏 241
8.4本章小结 242
第9章 文字与图形处理技术 243
9.1图形设备接口 244
9.1.1设备上下文介绍 244
9.1.2熟悉使用GDI对象 245
9.2文本输出 255
9.2.1使用TextOut方法在指定位置输出文本 255
9.2.2使用ExtTextOut方法在指定区域输出文本 255
9.2.3使用TabbedTextOut方法根据制表位输出文本 257
9.2.4使用DrawText方法格式化输出文本 257
9.3文本属性 258
9.3.1设置文本字体 259
9.3.2设置文本对齐方式 261
9.3.3设置文本颜色 262
9.3.4设置文本背景颜色 262
9.3.5设置文本背景模式 263
9.3.6获取文本长度 263
9.4图形绘制 264
9.4.1利用点线绘制多边形 264
9.4.2如何快速地绘制图形 265
9.4.3如何填充指定的区域 268
9.4.4绘制不规则图形 269
9.5图像显示 270
9.5.1设备相关和设备无关位图 270
9.5.2在视图中绘制位图 271
9.5.3放大和缩小显示图片 272
9.6本章小结 273
第10章 打印技术 74
10.1打印概述 275
10.1.1文档视图的打印流程 275
10.1.2 CPrintinfo结构 279
10.1.3动态计算页码 280
10.2映射模式与坐标系统 282
10.2.1固定比率与可变比率映射模式 283
10.2.2 MM_TEXT映射模式 283
10.2.3设置逻辑与设备坐标 284
10.3打印控制 284
10.3.1获取打印纸的左边距和上边距 284
10.3.2控制打印方向 285
10.3.3设置打印份数 287
10.4打印实例 288
10.4.1设计报表打印程序 2
10.4.2设计单据打印报表 291
10.4.3设计工作证打印程序 292
10.4.4设计图片打印程序 294
10.5本章小结 296
第11章 多媒体技术 297
11.1图像处理技术 298
11.1.1位图文件结构分析 298
11.1.2将位图文件绘制成对话框背景 299
11.1.3将设备上下文转换为位图 300
11.2音频处理技术 302
11.2.1播放应用程序中的WAVE资源 302
11.2.2播放WAVE文件 302
11.2.3音量大小控制 304
11.3视频处理技术 307
11.3.1播放AVI文件 307
11.3.2将AVI动画分解成BMP位图 310
11.3.3将BMP位图组合成AVI动画 312
11.4本章小结 316
第12章 ODBC数据库编程 317
12.1 ODBC概述 318
12.2设置ODBC数据源 318
12.3 MFC ODBC类 320
12.3.1 CDatabase类介绍 320
12.3.2 CRecordset类介绍 320
12.3.3 CFieldExchange类介绍 322
12.3.4 CRecordView类介绍 322
12.3.5 CDBException类介绍 323
12.4 MFC ODBC数据库操作技术 323
12.4.1连接数据源 323
12.4.2打开记录集 323
12.4.3移动记录 324
12.4.4向数据表中添加记录 325
12.4.5修改现有记录 329
12.4.6删除指定的记录 331
12.4.7根据条件查询记录 332
12.4.8使用SQL语句操作数据库 333
12.5本章小结 335
第13章 ADO数据库编程 336
13.1 ADO概述 337
13.2 ADO对象 337
13.2.1连接对象Connection 337
13.2.2命令对象Command 338
13.2.3记录集对象Recordset 339
13.3 ADO数据库操作技术 341
13.3.1导入ADO动态链接库 341
13.3.2使用ADO智能指针 342
13.3.3初始化COM环境 342
13.3.4连接数据库 342
13.3.5获取连接数据库字符串的简单方法 345
13.3.6打开记录集 346
13.3.7遍历记录集 347
13.3.8获取记录集记录数 349
13.3.9向记录集中添加数据 349
13.3.10修改现有记录 351
13.3.11删除记录集中指定记录 352
13.3.12使用SQL语句操作数据库 354
13.3.13向数据库中添加位图 356
13.4本章小结 358
第14章 文件操作 359
14.1 C库和运行库函数文件操作 360
14.1.1 C库和运行库函数文件操作介绍 360
14.1.2创建并写入文件 364
14.1.3获取文件位置指针与文件长度 365
14.2 CFile类文件操作 367
14.2.1 CFile类介绍 367
14.2.2获取文件属性 370
14.2.3十六进制显示文本文件 373
14.2.4使用CFile实现文件的复制 374
14.2.5报告文件异常 375
14.2.6 CFile类与CStdioFile类的比较 376
14.3 MFC串行化 378
14.3.1 CArchive类介绍 378
14.3.2 Serialize函数分析 379
14.3.3创建串行化类 380
14.3.4实现对象的串行化 380
14.4文件查找类 382
14.4.1文件查找类介绍 382
14.4.2查找指定文件 384
14.4.3显示磁盘目录 385
14.5本章小结 387
第15章 注册表与INI文件 388
15.1注册表 389
15.1.1注册表简介 389
15.1.2注册表结构分析 389
15.2注册表函数 390
15.2.1 CRegKey类 390
15.2.2注册表数据的写入 393
15.2.3注册表的相关查询 398
15.2.4注册表数据的枚举 400
15.3 INI文件 404
15.3.1 INI文件简介 404
15.3.2 INI文件结构分析 404
15.4 INI文件操作函数 404
15.4.1操作INI文件函数介绍 405
15.4.2 INI文件中键名数据的读写 407
15.4.3读写结构数据 410
15.4.4节名与键名的枚举 411
15.5本章小结 412
第16章 动态链接库 413
16.1链接库概述 414
16.1.1链接库的构成 414
16.1.2动态链接库和静态链接库 414
16.2链接库的创建与使用 415
16.2.1通过向导创建静态链接库 415
16.2.2使用静态链接库 416
16.2.3创建Win32动态链接库 417
16.2.4 MFC的3种动态链接库 419
16.3链接库的导出 421
16.3.1动态链接库的命名改编 421
16.3.2使用dumpbin工具查看链接库 421
16.3.3使用DEF文件导出函数名称 422
16.3.4隐式调用与动态加载 423
16.3.5从动态链接库中导出类 424
16.4动态链接库高级应用 427
16.4.1模块状态 427
16.4.2资源动态链接库 429
16.4.3钩子介绍 433
16.4.4使用钩子动态链接库监控键盘 435
16.5本章小结 438
第17 章 进程与线程 439
17.1进程 440
17.1.1理解进程的概念 440
17.1.2进程实例句柄 440
17.1.3进程的创建 441
17.1.4进程的终止 443
17.2进程的应用 444
17.2.1启动外部程序 444
17.2.2进程间的消息通信 445
17.2.3进程间内存共享 447
17.2.4列举系统中的进程 449
17.3线程 451
17.3.1深入理解线程 451
17.3.2线程的创建与终止 451
17.3.3用户界面线程 453
17.4线程同步 455
17.4.1线程同步的重要性 455
17.4.2互斥实现线程同步 456
17.4.3临界区实现线程同步 458
17.4.4事件实现线程同步 460
17.5本章小结 461
第18章 网络编程 462
18.1网络基础知识 463
18.1.1计算机网络的定义、功能及分类 463
18.1.2 OSI参考模型 463
18.1.3 TCP/IP协议簇分析 464
18.2局域网技术 465
18.2.1获取网卡地址 465
18.2.2映射网络驱动器 466
18.2.3获取局域网计算机名称和IP 467
18.2.4获得网上共享资源 470
18.2.5在局域网中发送短消息 472
18.3 Windows套接字技术 472
18.3.1套接字概述 473
18.3.2 WinSock API相关函数 473
18.3.3使用套接字函数设计网络聊天室 477
18.4 WinSock类 481
18.4.1 CAsyncSocket类介绍 481
18.4.2 CSocket类介绍 485
18.4.3使用WinSock类设计网络聊天室 485
18.5本章小结 488
第19章 程序调试 489
19.1断点跟踪 490
19.1.1设置普通断点 490
19.1.2设置条件断点 491
19.1.3设置数据断点 492
19.1.4设置消息断点 493
19.1.5进行断点跟踪 493
19.2调试窗口 496
19.2.1使用“Watch”窗口查看变量值 496
19.2.2使用“Call Stack”窗口查看函数的调用 497
19.2.3使用“Memory”窗口查看对象的内存信息 497
19.2.4使用“Variables”窗口查看变量信息 499
19.2.5使用“Registers”窗口查看寄存器信息 499
19.2.6使用“Disassembly”窗口查看反汇编代码 500
19.3内存泄露检测 502
19.4本章小结 502
附录 实例快速检索 503