第1章 Visual C++基本知识 1
1.1 为什么需要Visual C++ 1
1.1.1 C++和Windows 2
1.2 第一个示例:HelloDlg 3
1.2.1 创建HelloDlg 4
1.3 创建KeysSDI工程 15
1.3.1 在KeysSDI中存储输入的键 18
1.3.2 在KeysSDI中读入按键 20
1.3.3 在KeysSDI中显示按键 22
1.4 剖析Visual C++程序 23
1.5 应用程序对象 24
1.6 主窗口对象 31
1.7 文档对象 37
1.7.1 在文档中存储数据 37
1.7.2 串行化数据 38
1.8 视图对象 43
1.9 下一章简介 49
第2章 多文档及多视图 50
2.1 创建MDI程序 50
2.2 MDI程序的工作方式 52
2.3 在MDI程序中处理数据 55
2.3.1 在MDI中读入按键 56
2.3.2 在MDI中显示文本 57
2.4 协调MDI的视图 59
2.4.1 使用视图的提示 60
2.4.2 在MDI程序中使用OnUpdate() 61
2.4.3 设置文档的修改标记 63
2.5 滚动MDI视图 73
2.5.1 实现滚动 76
2.5.2 设置文档的尺寸 77
2.6 使用多菜单和视图类型 89
2.6.1 使用MDI菜单 89
2.6.2 访问文档的所有视图 91
2.6.3 支持多视图类型 93
2.7 下一章简介 103
第3章 编辑视图. HTML视图. 树状视图. 拆分窗口及其他 104
3.1 多信息文本视图 104
3.1.1 新建文档模板 105
3.1.2 使用RTF文档 107
3.2 窗体视图 108
3.2.1 设计窗体 108
3.2.2 为MDI计算器编写代码 111
3.3 HTML视图 113
3.3.1 设计URL对话框 116
3.3.2 为对话框添加代码 117
3.4 树状视图 124
3.4.1 植入树状视图 127
3.4.2 添加图像到树状视图中 127
3.4.3 确定被双击的项 129
3.5 拆分窗口 136
3.5.1 创建拆分窗口类 137
3.5.2 在程序中添加拆分窗口 137
3.6 下一章简介 142
第4章 功能强大的菜单. 工具栏和状态栏 143
4.1 可复选菜单项 143
4.1.1 菜单快捷方式 145
4.2 使用子菜单 147
4.3 禁用菜单项 150
4.3.1 使用菜单分隔符 151
4.4 使用菜单加速键 152
4.5 位图菜单项 153
4.6 实时修改菜单项 155
4.7 弹出菜单 157
4.7.1 显示弹出菜单 159
4.7.2 将弹出菜单项连接到代码 160
4.8 使用可停靠工具栏 168
4.8.1 创建新的工具栏类 169
4.8.2 与工具栏的组合框交互 170
4.8.3 在工具栏中插入组合框 170
4.8.4 在工具栏中添加工具 172
4.8.5 使用增强工具栏 174
4.9 使用状态栏 175
4.9.1 设置状态栏文本 175
4.9.2 添加工具提示和状态栏提示 175
4.9.3 激活状态栏指示器 176
4.9.4 使用指示器加速键 178
4.10 下一章简介 188
第5章 实际编程:Editor应用程序 189
5.1 创建Editor程序 189
5.1.1 在编辑器中读键 190
5.1.2 删除字符 191
5.1.3 设计Editor程序的数据存储 192
5.2 使用文件:串行化 193
5.2.1 串行化数据对象 194
5.2.2 设置Editor数据文件的默认扩展名 197
5.2.3 在Windows中注册Editor文件 197
5.2.4 在视图中添加插入记号 197
5.2.5 更新插入记号的位置 200
5.3 添加鼠标支持 200
5.3.1 修改视图的默认光标 202
5.3.2 获得和失去焦点 203
5.4 使用剪贴板 204
5.4.1 选择文本 204
5.4.2 复制文本 206
5.4.3 剪切文本 208
5.4.4 粘贴文本 209
5.4.5 从Editor程序中打印 211
5.4.6 在每页上打印页眉 213
5.5 下一章简介 228
第6章 高级屏幕和元文件图形 229
6.1 屏幕捕获 229
6.1.1 捕获鼠标 229
6.1.2 在屏幕的任何地方绘图 231
6.1.3 拉伸图形图像 233
6.1.4 二进制光栅操作 235
6.1.5 从屏幕上捕获位图 237
6.1.6 在剪贴板上放置位图 238
6.1.7 在视图中显示位图 241
6.2 元文件 250
6.2.1 设计CRedraw类 250
6.2.2 编写CRedraw类 251
6.2.3 编写PlayMetaFile()函数 252
6.2.4 创建Circle程序 254
6.3 下一章简介 262
第7章 32位内存处理 263
7.1 内存概述 263
7.2 功能强大的内存函数 265
7.3 使用虚拟内存 266
7.3.1 分配内存 267
7.3.2 提交内存 268
7.3.3 释放内存 268
7.4 扫描所有内存 268
7.5 内存映射文件 279
7.5.1 获得需要传递的数据 280
7.5.2 编写内存映射文件 281
7.5.3 创建内存文件视图 282
7.5.4 读内存映射文件 284
7.6 下一章简介 292
第8章 连接到Internet 293
8.1 使用HTTP协议 293
8.1.1 创建HTTP程序 294
8.1.2 开始Internet会话 294
8.1.3 打开URL 295
8.2 使用FTP协议 303
8.2.1 创建FTP程序 304
8.2.2 创建FTP连接 305
8.2.3 下载文件 305
8.2.4 用CFile从磁盘读入文件 306
8.3 创建Web浏览器 314
8.3.1 安装Web浏览器控件 314
8.4 下一章简介 321
第9章 多任务编程 322
9.1 使用线程 322
9.1.1 创建Threads程序 324
9.1.2 启动新线程 326
9.1.3 编写新线程的线程过程 327
9.1.4 从线程返回结果 328
9.1.5 通知程序线程已经结束 329
9.1.6 建立新Windows消息 330
9.1.7 报告线程结果 331
9.2 协调多线程 340
9.2.1 使用事件协调线程 340
9.2.2 创建DoubleThreads程序 341
9.2.3 启动线程 343
9.2.4 设置和重置事件 344
9.2.5 编写线程过程 346
9.2.6 编写MinThread进程 346
9.2.7 处理Windows消息 347
9.3 下一章简介 357
第10章 动态链接库的功能 358
10.1 Doubler DLL 358
10.1.1 从DLL中输出函数 362
10.1.2 Doubler程序 365
10.1.3 链接到新建的DLL 366
10.2 在DLL中共享内存:Counter DLL 378
10.2.1 创建CounterDLL.dll 378
10.2.2 在DLL中设置共享内存 379
10.2.3 创建Counter程序 380
10.3 下一章简介 391
第11章 使用Windows挂钩 392
11.1 Journal程序 392
11.1.1 设置record挂钩 393
11.1.2 设置playback挂钩 394
11.1.3 启动Windows程序 395
11.1.4 记录事件 398
11.1.5 存储KeyDown和KeyUp消息 400
11.1.6 回放事件 403
11.1.7 回放一个事件 404
11.1.8 跳到下一个事件 405
11.2 Keyboard挂钩 415
11.2.1 创建LuanchDLL.dll 415
11.2.2 安装挂钩 416
11.2.3 挂钩函数过程 417
11.2.4 创建Launch程序 419
11.3 下一章简介 429
第12章 COM和OLE 430
12.1 创建包容器 430
12.1.1 Container项 431
12.1.2 Container程序的视图 434
12.1.3 处理鼠标 438
12.1.4 处理双击 441
12.2 创建Server 459
12.2.1 服务器文档 460
12.2.2 Server Item 461
12.2.3 服务器视图 463
12.2.4 就地编辑服务器项 464
12.3 下一章简介 476
第13章 创建ActiveX控件 477
13.1 Writer ActiveX控件 477
13.1.1 使用ActiveX ControlWizard 478
13.1.2 在ActiveX中接受敲键输入 479
13.1.3 在ActiveX控件中显示数据 481
13.1.4 测试ActiveX控件 483
13.1.5 创建WriterApp 483
13.2 控件子类:Writer2 ActiveX控件 498
13.2.1 ActiveX属性 501
13.2.2 ActiveX方法 502
13.2.3 ActiveX 事件 503
13.2.4 创建Writer2App 504
13.3 下一章简介 522
第14章 Windows注册表和版本跟踪 523
14.1 使用注册表:Remember应用程序 523
14.1.1 在注册表中保存数据 526
14.1.2 读取注册表的数据 526
14.2 使用Version资源 539
14.2.1 设计About框 542
14.2.2 获取版本信息 543
14.2.3 获取Version资源值 544
14.2.4 获取主要和次要版本号 546
14.2.5 获取公司名称 547
14.2.6 获取目标操作系统类型 548
附录 网上信息 569