第1部分 基础篇 3
第1章 VisualC++编程基础 3
1.1Windows编程基础 3
1.1.1Windows基础 3
1.1.2WindowsAPI 6
1.2C++语言基础 7
1.2.1基本数据类型 8
1.2.2表达式 11
1.2.3控制语句 12
1.2.4数组 15
1.2.5指针 15
1.2.6函数 16
1.2.7类 19
1.3MFC基础 26
1.3.1MFC类库简介 26
1.3.2MFC应用程序框架 27
1.3.3MFC消息映射 28
1.3.4程序实例:绘制直线 29
第2章 VisualC++6.0集成开发环境 37
2.1菜单 37
2.1.1File菜单 37
2.1.2Edit菜单 38
2.1.3View菜单 39
2.1.4Insery菜单 40
2.1.5Project菜单 41
2.1.6Build菜单 41
2.1.7Tools菜单 42
2.1.8Window菜单 43
2.1.9Help菜单 44
2.2工具栏 45
2.2.1工具栏的显示与隐藏 45
2.2.2工具栏的定制与修改 46
2.3项目面板 46
2.4代码编辑器 47
2.5调试窗口 48
第3章 基本控件 49
3.1静态控件 49
3.1.1静态控件概述 49
3.1.2程序实例:用StaticText控件显示滚动文字 49
3.2文本框 76
3.2.1文本框概述 76
3.2.2程序实例:输入格式化字符串的文本框 77
3.3按钮 82
3.3.1按钮概述 82
3.3.2程序实例:WindowsXP风格的按钮 83
3.4列表框 97
3.4.1列表框概述 98
3.4.2程序实例:选项的左右移动 98
3.5组合框 106
3.5.1组合框概述 106
3.5.2程序实例:三种风格的组合框 106
3.6进度条 110
3.6.1进度条概述 110
3.6.2程序实例:显示文字的进度条 110
第4章 对话框 115
4.1对话框的基础知识 115
4.2模态对话框 115
4.2.1模态对话框概述 115
4.2.2程序实例:创建和显示模态对话框 116
4.3非模态对话框 119
4.3.1非模态对话框概述 119
4.3.2程序实例:创建和显示非模态对话框 119
4.4通用对话框 126
4.4.1通用对话框概述 126
4.4.2程序实例:显示9种通用对话框 126
第2部分 提高篇 133
第5章 文档和视图 133
5.1文档和视图的基础知识 133
5.1.1文档和视图的概念 133
5.1.2文档和视图的关系 133
5.1.3两类文档视图程序(SDI和MDI) 134
5.1.4与文档视图程序相关的五个重要的类 134
5.1.5有关文档类和视图类的五个重要的成员函数 137
5.1.6与文档视图程序相关的三种基本组件 138
5.2单文档 138
5.2.1单文档概述 138
5.2.2程序实例:让应用程序一启动就打开最近使用的文件 138
5.3多文档 141
5.3.1多文档概述 141
5.3.2程序实例:实现在多个文档中位图的复制和粘贴操作 142
5.4菜单 162
5.4.1菜单概述 162
5.4.2创建菜单 163
5.4.3在应用程序中控制菜单 163
5.4.4菜单消息处理 163
5.4.5程序实例:实现弹出式菜单 163
5.5工具栏 167
5.5.1工具栏概述 167
5.5.2创建工具栏 167
5.5.3常见工具栏函数 168
5.5.4程序实例:在工具栏中图标下面显示文本 171
5.6状态栏 173
5.6.1状态栏概述 173
5.6.2创建状态栏 173
5.6.3常见状态栏函数 174
5.6.4程序实例:在状态栏中显示滚动的文本 175
第6章 消息机制 181
6.1鼠标消息 181
6.1.1鼠标消息分类 181
6.1.2鼠标消息处理函数 181
6.1.3程序实例:显示用户操作鼠标事件 182
6.2键盘消息 188
6.2.1键盘消息分类 188
6.2.2键盘消息处理函数 188
6.2.3虚拟键码 189
6.2.4程序实例:显示用户操作键盘事件 190
6.3定时器消息 198
6.3.1定时器概述 198
6.3.2与定时器相关的三个函数 199
6.3.3程序实例:倒计时 199
6.4自定义消息 203
6.4.1消息的组成 203
6.4.2消息号的范围及其含义 203
6.4.3消息的发送 204
6.4.4自定义消息处理的过程 204
6.4.5程序实例:显示鼠标光标的坐标位置 205
第7章 图形图像 211
7.1图形和图像的基础知识 211
7.1.1图形和图像的概念 211
7.1.2图形图像文件 212
7.1.3颜色 213
7.1.4分辨率 213
7.2图形设备接口和设备上下文 215
7.2.1图形设备接口 215
7.2.2设备上下文 216
7.3绘图操作类和窗口重画函数 216
7.3.1三个重要的绘图操作类 216
7.3.2三个支持窗口重画的函数 216
7.4OnPaint()函数和OnDraw()函数 217
7.5绘图工具的创建 217
7.5.1画笔 217
7.5.2画刷 219
7.5.3字体 222
7.6绘图工具的使用 225
7.6.1绘图工具的使用步骤 225
7.6.2程序实例1:创建3种类型的画笔 226
7.6.3程序实例2:创建3种类型的画刷 229
7.6.4程序实例3:创建4种类型的字体 231
7.7文本操作 234
7.7.1文本操作概述 234
7.7.2程序实例:测试鼠标光标所在的Region 236
7.8位图操作 241
7.8.1位图的创建 241
7.8.2设置位图的内容 242
7.8.3位图的显示 243
7.8.4程序实例:在SDI中显示指定的位图 243
第8章 文件处理 253
8.1文件操作 253
8.1.16个重要的文件操作类 253
8.1.2打开文件 256
8.1.3读写文件 257
8.1.4文件定位 257
8.1.5关闭文件 257
8.1.6查找文件 257
8.1.7复制文件 258
8.1.8删除文件 258
8.1.9文件重命名 258
8.2ini文件 258
8.2.1ini文件的结构 258
8.2.2两个重要的存取ini文件的函数 258
8.3序列化 259
8.3.1CArchive类 259
8.3.2Serialize函数 261
8.4程序实例 261
8.4.1实例1:通过读写文件实现登录对话框 261
8.4.2实例2:在文件打开对话框中选择多个文件 267
8.4.3实例3:文件加密 275
8.4.4实例4:用ini文件实现保留上一次打开过的文件 283
8.4.5实例5:对画图文档实行序列化处理 287
第9章 注册表操作 303
9.1注册表的基础知识 303
9.2注册表的访问和修改 304
9.2.1注册表的打开 304
9.2.2注册表的修改 305
9.2.3注册表的关闭 305
9.3程序实例 306
9.3.1实例1:限定软件的使用次数 306
9.3.2实例2:修改IE主页 308
第3部分 高级篇 317
第10章 ActiveX编程 317
10.1ActiveX控件基础知识 317
10.1.1ActiveX的定义 317
10.1.2ActiveX的核心内容 317
10.1.3ActiveX控件的优点 318
10.1.4ActiveX控件的组成 318
10.1.5ActiveX控件的方法 318
10.1.6ActiveX控件的属性 320
10.1.7ActiveX控件的事件 321
10.1.8ActiveX控件的两种操作模式 322
10.2创建ActiveX控件 323
10.3注册ActiveX控件 325
10.4使用ActiveX控件 326
10.5程序实例:电子时钟控件 327
第11章 多媒体编程 347
11.1多媒体技术的基础知识 347
11.1.1什么是多媒体技术 347
11.1.2多媒体技术的特性 347
11.1.3多媒体技术涉及的内容 348
11.2音频技术 348
11.2.1音频技术概述 348
11.2.2程序实例:一款简洁实用的Mp3播放器 348
11.3视频技术 357
11.3.1视频技术概述 357
11.3.2程序实例:用MediaPlayer组件制作的视频播放器 357
11.4图像压缩技术 362
11.4.1图像压缩技术概述 362
11.4.2程序实例:将BMP文件压缩成JPG文件 362
第12章 数据库编程 369
12.1利用VisualC++开发数据库的优势 369
12.2VisualC++提供的数据库访问技术 370
12.2.1ODBC数据库访问技术 370
12.2.2DAO数据库访问技术 370
12.2.3ADO数据库访问技术 372
12.3程序实例 376
12.3.1实例1:通过ODBC读写Excel表格文件 376
12.3.2实例2:通过DAO读写Access文件 387
12.3.3实例3:通过ADO操作Access数据库 397
第13章 多线程 411
13.1进程、线程和多线程的概念 411
13.1.1基本概念 411
13.1.2进程和程序的关系 412
13.1.3进程和线程的关系 412
13.1.4程序实例:进程管理器 412
13.2多线程的基本工作原理 433
13.3线程的分类 433
13.3.1工作者线程 433
13.3.2用户界面线程 434
13.3.3程序实例1:使用工作者线程查找局域网内在线用户 435
13.3.4程序实例2:使用用户界面线程实现软件的片头效果 449
13.4线程的优先级 452
13.4.1优先级类 453
13.4.2优先级层 453
13.5线程的基本操作 454
13.6线程的同步 454
13.6.1线程同步问题的产生 454
13.6.2解决线程同步问题的方法 454
13.6.3程序实例:使用4种方法解决线程同步问题 457
13.7线程的通信 464
13.7.1线程间的通信方式 464
13.7.2程序实例:使用消息实现线程通信 465
第14章 动态链接库 469
14.1动态链接库的基础知识 469
14.1.1为何要使用动态链接库 470
14.1.2动态链接库的调用方式 471
14.2创建动态链接库 471
14.2.1Win32DLL的创建 472
14.2.2程序实例1:获取最大和最小数(使用导出函数关键字) 473
14.2.3程序实例2:获取最大和最小数(使用.def文件) 474
14.2.4MFCDLL的创建 475
14.2.5程序实例:显示问候信息 476
14.2.6D11Main函数 480
14.2.7在DLL中使用资源 481
14.3调用动态链接库 487
14.3.1隐式链接概述 488
14.3.2程序实例:通讯录 488
14.3.3显示链接概述 496
14.3.4程序实例:关闭计算机 496
14.4查看动态链接库导出信息的方法 502
第15章 COM编程 503
15.1组件 503
15.1.1什么是组件 503
15.1.2使用组件的优点 503
15.2接口 504
15.2.1什么是接口 504
15.2.2接口的作用 504
15.3COM的基础知识 504
15.3.1什么是COM 504
15.3.2开发COM的目的 504
15.3.3COM的本质 504
15.3.4返回值HRESULT 505
15.3.5GUID 505
15.3.6IDL 505
15.3.7IUnknown接口 507
15.3.8类厂 508
15.3.9引用计数 511
15.3.10智能指针 511
15.4COM的实现 512
15.5程序实例:利用COM实现四则运算 515
第16章 网络编程 535
16.1网络的基础知识 535
16.1.1协议 535
16.1.2分层模型 535
16.1.3IP地址 536
16.1.4端口 537
16.1.5数据封装 537
16.1.6套接字 537
16.2WinSock编程 538
16.2.1WinSock编程原理 538
16.2.2Win5ock常用函数 539
16.2.3程序实例1:基于UDP的网络通信 545
16.2.4程序实例2:基于TCP的聊天室 553
第17章 钩子技术 569
17.1钩子的基础知识 569
17.1.1钩子的原理 569
17.1.2钩子的类型 570
17.2钩子的实现 572
17.3程序实例 573
17.3.1实例1:类似金山词霸屏幕取词功能的鼠标钩子 573
17.3.2实例2:利用键盘钩子屏蔽任意按键 581
第18章 托盘技术 589
18.1托盘的基础知识 589
18.1.1托盘的概述 589
18.1.2托盘的访问 589
18.2托盘的实现 590
18.3程序实例:定时关机 591
附录简明MFC类库参考列表 601