第1章 用户界面编程 1
1.1 使用AppWizard创建多文档应用程序 1
1.2 设计菜单项 7
1.2.1 创建和修改菜单资源 7
1.2.2 增加菜单命令处理函数 9
1.2.3 弹出式菜单的创建 11
1.2.4 创建有位图或图标的菜单 16
1.2.5 动态修改菜单 17
1.3 使用加速键 21
1.4 Windows标准控件 22
1.4.1 使用对话框编辑器 23
1.4.2 使用位图按钮 25
1.4.3 使用自绘按钮 29
1.5 使用工具条 33
1.5.1 CControlBar类 34
1.5.2 创建工具条 34
1.5.3 工具条的移动 35
1.5.5 在工具条中加入组合框 36
1.5.4 工具条的显隐控制 36
1.5.6 浮动工具条的编制 39
1.5.7 工具条停靠控制 40
1.6 状态条控制 42
1.6.1 状态条控制的对象结构 43
1.6.2 状态条控制的应用 43
1.7 设计通用对话框 44
1.8 帮助文件的编制 47
1.8.1 普通帮助的创建 47
1.8.2 HTML帮助文件的制作 51
1.9 应用程序封面设计 62
第2章 ActiveX控件编程 69
2.1 什么是ActiveX控件 69
2.1.1 ActiveX的定义 70
2.1.2 ActiveX的内容 70
2.2 用Visual C++创建ActiveX控件 71
2.2.1 创建基本的控件 71
2.2.2 添加方法 73
2.2.3 创建用户自定义属性 75
2.2.5 创建Stock属性 76
2.2.4 创建参数化的属性 76
2.2.6 使用环境属性 77
2.2.7 创建属性表 77
2.2.8 增加事件 80
2.2.9 控件的持久性 81
2.2.10 绘制控件 82
2.2.11 创建异步的属性 83
2.2.12 静态和动态的属性枚举 87
2.2.13 增加剪贴板和拖放支持 90
2.2.14 现有控件的Subclassing(子类化) 100
2.2.15 其他的ActiveX特征 101
2.3 在Visual C++中使用ActiveX控件 103
2.3.1 用Visual BASIC作容器 103
2.3.2 用Visual C++作容器 104
2.3.3 HTML和浏览器 105
2.3.4 用Office作容器 107
2.3.5 互联网脚本 107
2.3.6 互联网组件下载 109
2.3.7 使用ActiveXMovie控件的视频播放器 109
3.1.3 为什么要介绍COM 126
3.1.2 COM组件 126
第3章 COM组件技术 126
3.1.1 什么是COM 126
3.1 概述 126
3.1.4 COM的历史 127
3.1.5 你应有所准备 127
3.2 组件 127
3.2.1 组件的特点 127
3.2.2 组件库 130
3.3 接口 130
3.3.1 接口的作用 131
3.3.2 COM接口的实现 131
3.3.3 接口的进一步讨论 135
3.4 IUnknown接口 139
3.4.1 关于IUnknown 139
3.4.2 QueryInterface函数 140
3.4.3 AddRef函数与Release函数 145
3.4.4 一个完整的例子 146
3.5 应用实例 151
3.5.1 OLE DB——统一数据存取的COM途径 152
3.5.2 MSChart控件 153
3.5.3 创建应用程序 153
3.5.4 插入MSChart控件 155
3.5.5 画出用户界面 155
3.6 DCOM简介 167
第4章 多线程编程 171
4.1 问题的提出 171
4.1.1 单线程程序的不足 171
4.2.1 进程和线程的基本概念 173
4.1.2 问题的解决方案 173
4.2 多线程编程准备知识 173
4.2.2 Win32 API对多线程编程的支持 175
4.2.3 MFC对多线程编程的支持 177
4.3 用MFC开发多线程应用程序的实例 179
4.3.1 概述 179
4.3.2 辅助线程程序的具体编写 180
4.3.3 辅助线程程序的说明 185
4.3.4 存在的问题 186
4.3.5 用户界面线程的一个实例 187
4.4.1 线程间通信 188
4.4 深入多线程编程 188
4.4.2 线程的同步 190
第5章 WinSock网络编程 204
5.1 通信协议简介 204
5.1.1 TCP/IP协议 204
5.1.2 TCP/IP模型 205
5.1.3 Windows的TCP/IP 205
5.1.4 了解TCP/IP核心协议 206
5.2.1 背景 210
5.2 Windows Sockets简介 210
5.2.2 Windows Sockets通信程序开发的基本步骤 211
5.2.3 Windows Sockets基本函数 212
5.3 编程实例 218
5.3.1 面向连接的流式套接字Win32 API例子 218
5.3.2 MFC对Socket的封装 229
5.3.3 非面向链接的数据报Sockets MFC例子 230
6.2.1 打开/关闭文件流 243
6.2 AVI文件流操作 243
6.1 VFW简介 243
第6章 VFW软件开发包 243
6.2.2 读写文件数据 244
6.2.3 利用剪贴板编辑文件 247
6.2.4 应用实例 249
6.3 用DrawDib绘制图像 259
6.3.1 DrawDib的性能特点 259
6.3.2 DrawDib的函数 259
6.3.4 位图文件格式 260
6.3.3 DrawDib的运行方式 260
6.3.5 使用Palette增强图像 261
6.4 视频捕捉 263
6.4.1 开发AVICap应用程序的软硬件配置 263
6.4.2 AVICap主要功能 263
6.4.3 Captune Window的操作方法 264
6.4.4 回调函数简介 265
6.4.5 视频预览与采集 269
6.4.6 采集设置对话框 269
6.5.1 VCM的功能 271
6.5 视频压缩管理器 271
6.5.2 VCM驱动注册 272
6.6 视频捕捉程序示例 272
第7章 网络视频点播开发实例 280
7.1 背景介绍 280
7.1.1 概述 280
7.1.2 开发目标 281
7.2.2 服务器的流程 282
7.2.1 开发目标 282
7.2 开发服务器程序 282
7.1.4 对读者的要求 282
7.1.3 开发工具与操作平台 282
7.3 重点细节分析 283
7.4 开发客户端应用程序 299
7.4.1 开发目标 299
7.4.2 客户应用程序流程 300
7.4.3 重点细节分析 300
7.5 总结与改进 314
附录A Visual C++ 7.0集成开发环境 316