第1章 绪论 1
1.1 组件革命 1
目录 1
1.2 工程和计算机科学 2
1.3 组件的定义 3
1.4 组件框架 4
1.5 编程模型 5
1.6 组件开发 6
1.7 结论 7
2.2 引言 9
2.3 属性 9
2.1 前提条件和学习目标 9
第2章 Visual Basic编程 9
2.4 事件 18
2.5 方法 29
2.6 数据库应用程序 34
2.7 在Visual Basic中“真正的”编程 37
2.8 结论 39
第3章 组件技术概述 41
3.1 前提条件和学习目标 41
3.2 引言 41
3.3 简单控件 42
3.4 VBX 44
3.5 ActiveX 47
3.6 COM/DCOM 53
3.7 JavaBeans 54
3.8 Delphi组件 55
3.9 NET组件 59
3.10 CORBA 61
3.11 结论 61
第4章 基于组件的应用程序设计 63
4.1 前提条件和学习目标 63
4.2 引言 63
4.3 基于组件的开发 64
4.4 一个设计范例 64
4.5 组件分类 70
4.6 可见的组件 71
4.7 不可见组件 74
4.8 其他组件类型 76
4.9 结论 77
第5章 组件实现 79
5.1 前提条件和学习目标 79
5.2 引言 79
5.3 属性、方法和事件 80
5.4 被动式实现风格 82
5.5 形式规范 83
5.6 单个组件开发 85
5.7 ActiveX开发 87
5.8 结论 90
第6章 模型组件 93
6.1 前提条件和学习目标 93
6.2 引言 93
6.4 汉诺塔 94
6.3 设计方法 94
6.5 拼图游戏 106
6.6 模型的各种形式 123
6.7 结论 124
第7章 编辑器 127
7.1 前提条件和学习目标 127
7.2 引言 127
7.3 设计方法 128
7.4 绘制对象 129
7.5 绘制模式 134
7.6 鼠标操作 135
7.7 鼠标处理例程 137
7.8 选择功能 146
7.9 修改功能 156
7.10 撤消功能 170
7.11 创建撤消对象 187
7.12 其他问题 190
7.13 方法回顾 194
7.14 结论 196
第8章 后台编辑器 199
8.1 前提条件和学习目标 199
8.2 引言 199
8.3 方法 199
8.4 SGE后台编辑器 200
8.5 结论 207
9.3 方法 209
9.2 引言 209
9.1 前提条件与学习目标 209
第9章 串行器 209
9.4 SGE串行化函数 210
9.5 SGE文件处理函数 214
9.6 SGE剪贴板处理函数 221
9.7 SGE打印控件 226
9.8 结论 229
第10章 显示 231
10.1 前提条件与学习目标 231
10.2 引言 231
10.3 方法 232
10.4 SGE对象浏览器 232
10.5 SGE调试浏览器 234
10.6 文本文件浏览器 239
10.7 快速排序查看器 248
10.8 方法回顾 257
10.9 结论 257
第11章 存取器 259
11.1 前提条件与学习目标 259
11.2 引言 259
11.3 方法 259
11.4 SGE存取器 260
11.5 文本文件存取器 265
11.6 方法回顾 266
11.7 结论 266
12.3 方法 269
12.2 引言 269
12.1 前提条件与学习目标 269
第12章 高速缓冲存储器 269
12.4 两个简单的高速缓冲存储器 270
12.5 随机数发生器 275
12.6 文字提取器 277
12.7 SGE高速缓冲存储器 281
12.8 方法回顾 287
12.9 结论 288
第13章 过滤器 289
13.1 前提条件与学习目标 289
13.2 引言 289
13.3 方法 289
13.4 热过滤器和冷过滤器 290
13.5 文件转换器 290
13.6 对象转换器 300
13.7 方法回顾 311
13.8 结论 311
第14章 UI窗口部件 313
14.1 前提条件与学习目标 313
14.2 引言 313
14.3 方法 313
14.4 十字控件 314
14.5 扑克牌组件 319
14.6 骰子组件 324
14.7 方法回顾 327
14.8 结论 327
15.3 方法 329
15.2 引言 329
15.1 前提条件与学习目标 329
第15章 装饰组件 329
15.4 简单的LED组件 330
15.5 闪烁文本控件 330
15.6 方法回顾 335
15.7 结论 335
第16章 函数库 337
16.1 前提条件与学习目标 337
16.2 引言 337
16.3 方法 337
16.4 VDAL通用对话框组件 338
16.5 结论 342
17.2 引言 343
17.3 方法 343
17.1 前提条件与学习目标 343
第17章 服务包装器 343
17.4 INI文件管理器 344
17.5 方法回顾 349
17.6 结论 350
第18章 容器 351
18.1 前提条件与学习目标 351
18.2 引言 351
18.3 方法 351
18.4 简单容器 352
18.5 结论 353
19.3 对象的所有权 355
19.2 引言 355
第19章 半持久性对象 355
19.1 前提条件与学习目标 355
19.4 虚函数 357
19.5 对象的确认 357
19.6 结论 358
第20章 组件级编程的未来 361
20.1 前提条件与学习目标 361
20.2 引言 361
20.3 支持直接编译 361
20.4 远程对象 362
20.5 环境服务 362
20.6 分层标准和协议独立 363
20.7 结论 363
A.2 私有、受保护或公共变量的使用时机 365
附录A 面向对象设计 365
A.1 引言 365
A.3 对象与类 366
A.4 参数化的构造函数 369
A.5 抽象封装 370
A.6 虚基类和多重继承 371
A.7 C++的缺陷 372
A.8 结论 376
附录B Windows GUI编程 377
B.1 引言 377
B.2 设备环境 377
B.3 笔和画刷 379
B.5 缩放和滚动 381
B.4 有用的绘制函数 381
B.6 位图、图标和其他资源 385
B.7 结论 386
附录C MFC和ATL 387
C.1 引言 387
C.2 MFC属性页 387
C.3 ATL与MFC的区别 388
C.4 ATL的属性、方法和事件 389
C.5 Windows固有的图形函数 390
C.6 无窗口激活 391
C.7 固定大小的MFC组件 391
C.8 结论 391
D.2 控件安全 393
附录D 在Web上使用ActiveX控件 393
D.1 引言 393
D.3 ATL组件的安全标记 395
D.4 在ATL中支持属性包 395
D.5 创建INF文件 395
D.6 创建cab文件 398
D.7 标记组件 398
D.8 版本编号 399
D.9 HTML标签和编辑器 400
D.10 脚本 400
D.11 授权 401
D.12 结论 401