第一章 面向对象的Windows程序 1
1.1 面向对象系统 1
1.2 Windows对象模型 1
1.2.1 图形对象 2
1.2.2 窗口对象 2
1.2.3 事件与消息 2
1.2.4 Windows是面向对象的吗? 3
1.2.5 面向对象的WindowsC++编程 3
1.3 为什么使用C++ 3
1.3.1 一种更好的C 4
1.3.2 面向对象的扩展 4
1.3.3 类库 5
1.3.4 应用程序框架 5
1.3.5 Windows程序转换到C++ 5
1.4 Vista应用程序框架 6
1.4.1 应用程序支持类 6
1.4.2 窗口类 6
1.4.3 图形类 8
1.4.4 通信类 8
1.5 下一步做什么 9
第二章 Windows应用程序 10
2.1 传统的Windows程序 10
2.1.1 程序 10
2.1.2 主驱动程序:WinMain 14
2.1.3 程序初始化 15
2.1.4 创建窗口类 15
2.1.5 创建或显示一个窗口 16
2.1.6 消息和消息循环 16
2.1.7 窗口过程 17
2.1.8 清除(Cleaning up) 17
2.1.9 Windows命名约定 18
2.1.10 严格编制程序规范 18
2.1.11 新数据类型 18
2.2 一个Vista Windows应用程序 19
2.2.1 程序 22
2.2.2 创建一个应用程序对象 22
2.2.3 创建窗口类 23
2.2.4 创建动作方法 23
2.2.5 使用图形画对象 24
2.2.6 Vista命名转换 24
2.3 下一步做什么 26
第三章 建立程序 27
3.1 Windows开发周期 27
3.1.1 创建C++源文件 27
3.1.2 创建资源文件 28
3.1.3 创建模块定义文件 30
3.1.4 创建帮助文件 30
3.1.5 创建项目 31
3.2 建立WinVista和WinApp 31
3.3 调试程序 31
3.3.1 使用Turbo Debugger 32
3.3.2 使用WInspector 32
3.3.3 强有力的测试 32
3.4 下一步做什么 33
第四章 应用程序和事件 34
4.1 Vista应用程序与VAppl类 34
4.1.1 接口、实现和访问控制 34
4.1.2 继承和初始化 39
4.1.3 程序清除 39
4.1.4 运行程序 40
4.1.5 重载运算符 40
4.2 Sizer:使用应用程序类 40
4.2.1 获取窗口状态信息 40
4.2.2 维护配置数据 41
4.3 用Windows通信:VEvent类 42
4.3.1 Windows消息 42
4.3.2 VEvernt类 47
4.3.3 事件移植性 47
4.4 MSGLIST:响应事件 49
4.4.1 初始化事件调度程序 54
4.4.2 初始化窗口 54
4.4.3 画窗口 55
4.4.4 响应鼠标事件 56
4.5 下一步做什么 58
第五章 Vista窗口对象 59
5.1 VWindow:基本的窗口类 59
5.1.1 窗口过程 60
5.1.2 调度消息 61
5.1.3 两步初始化 63
5.1.4 VWindows类层次 63
5.2 FileView:一个文件浏览器 63
5.2.1 设计FileView 63
5.2.2 FileView类 64
5.2.3 Viewer类 68
5.2.4 FileBuffer和TextLine类 72
5.3 滚动窗口 75
5.4 把C程序转移到Vista 81
5.5 下一步做什么 82
第六章 用菜单和加速键获得输入 83
6.1 Windows菜单 83
6.1.1 下拉式菜单 83
6.1.2 层叠式菜单 85
6.1.3 弹出式菜单 86
6.2 使用Vista菜单对象 87
6.2.1 为窗口对象增加菜单 90
62.2 响应用户命令 91
6.3 用VMenu类创建动态菜单 92
6.4 创建浮动菜单 99
6.5 使用加速键 104
6.6 C程序移植到Vista 109
6.7 下一步做什么 109
第七章 对话和消息框 110
7.1 Vista对话框 110
7.2 消息框 110
7.3 Windows通用对话框 112
7.3.1 用VFileOpenDialog类打开文件 121
7.3.2 管理打印机 122
7.3.3 用VFontDialog类选择字体 125
7.3.4 用VColorDialog类设置颜色 126
7.3.5 用VFindDialog类查找文字 127
7.4 下一步做什么 129
第八章 子窗口控制对象 130
8.1 子窗口控制 130
8.2 把数据对象放入对话框 130
8.3 用控制的数据验证 146
8.3.1 字符级验证 146
8.3.2 字段级验证 147
8.4 定做控制 147
8.5 使用全局窗口消息 148
8.6 移植C程序到Vista 149
8.7 下一步做什么 149
第九章 MDI窗口对象 150
9.1 多文档界面 150
9.2 Vista MDI类 150
9.2.1 管理子窗口 151
9.2.2 交换菜单 158
9.2.3 对象依赖关系 165
9.3 非常规的MDI窗口 166
9.3.1 拖放操作 173
9.3.2 模拟程序管理器图标 174
9.4 一个MDI FileView(文件浏览器) 177
9.5 把MDI程序从C移植到Vista 194
9.6 下一步做什么 195
第十章 图形对象 196
10.1 Windows图形模式 196
10.1.1 设备描述表 197
10.1.2 绘图工具 197
10.1.3 图形原语(graphics Primitives) 197
10.1.4 Win32的改进 197
10.2 Vista图形对象 198
10.2.1 设备对象 198
10.2.2 图形工具对象 200
10.2.3 高级图形对象 201
10.2.4 打印对象 206
10.3 下一步做什么 207
第十一章 内存管理和动态连接库 208
11.1 Windows 3.X内存结构 208
11.2 内存和Windows操作模式 208
11.2.1 内存段属性 208
11.2.2 标准模式 209
11.2.3 386增强模式 211
11.2.4 程序结构 211
11.2.5 Windows 3.X内存管理API 212
11.3 Win32内存结构 213
11.4 对象内存管理 213
11.4.1 缺省new和delete运算符 213
11.4.2 VAllocator类 215
11.4.3 VHandle类 217
11.4.4 模板类 218
11.4.5 重载指针递引用 221
11.4.6 扩充VHandle类 222
11.5 使用动态连接库 225
11.5.1 LibMain和WEP 226
11.5.2 Windows NT动态连接库 226
11.5.3 引入或引出函数 226
11.5.4 对象的特殊需求 227
11.6 下一步做什么 228
第十二章 剪贴板、DDE和OLE对象 229
12.1 Windows内部通信 229
12.2 剪贴板 229
12.2.1 VClipboard类 230
12.2.2 VClipItem类 230
12.2.3 一个应用程序例子:CLIP 231
12.3 动态数据交换(Dynamic date exhange) 240
12.3.1 DDEML基础 240
12.3.2 Vista DDE类 243
12.3 VDdeObject类 243
12.3 VDdeServer类 244
12.3.5 数据管理回调函数 246
12.3.6 VDdeClient和交谈类 250
12.4 对象连接和嵌入(OLE) 256
12.4.1 为什么使用OLE 257
12.4.2 什么是OLE 258
12.4.3 OLE服务器应用 259
12.4.4 OLE客户应用 260
12.4.5 Vista OLE类 260
12.4.6 事件调度 261
17.4.7 构造一个OLE服务器 261
12.4.8 构造一个OLE客户 273
12.4.9 调试OLE应用 284
12.5 小结 284
附录A 287
A.1 Vista库 287