第一部分 ActiveX控件编程 1
第1章 VB编程入门 3
1.1 Visual Basic简介 3
1.2 Visual Basic编程基本概念 3
1.2.1 Windows工作机制 4
1.2.2 面向事件的编程模式 4
1.2.3 交互式开发环境 4
1.3.1 菜单条 5
1.3.2 上下文菜单 5
1.3 集成开发环境 5
1.3.3 工具栏 6
1.3.4 工具箱 6
1.3.5 工程管理器窗口 6
1.3.6 属性窗口 7
1.3.7 对象浏览器 7
1.3.8 窗体设计器 8
1.3.9 代码编辑器 8
1.3.10 窗体布局窗口 8
1.3.11 立即、本地和监视窗口 8
1.4.2 对象的属性、方法和事件 9
1.4 面向对象编程 9
1.4.1 理解对象和类的关系 9
1.4.3 使用其它应用程序的对象 10
1.5 使用控件编程 11
1.5.1 控件属性 12
1.5.2 控件方法 12
1.5.3 在工程中添加控件 13
1.5.4 从工程中删除控件 14
1.6 ActiveX部件简介 14
1.6.1 ActiveX部件的特性 15
1.6.2 选择ActiveX部 16
第2章 ActiveX控件入门 17
2.1 ActiveX控件简介 17
2.2 基础概念 17
2.2.1 控件类与控件实例 18
2.2.2 控件与控件部件 18
2.2.3 容器与定位 18
2.2.4 接口与外观 18
2.2.5 设计时实例与运行时实例 18
2.3.1 准备工作 19
2.3 快速入门 19
2.3.2 创建ControlDemo工程 20
2.3.3 添加测试工程 21
2.3.4 设计时运行Gradient控件 22
2.3.5 UserControl对象的存活期 25
2.3.6 绘制Gradient控件 28
2.3.7 添加控件属性 29
2.3.8 添加属性页 33
2.3.9 为Gradient控件添加事件 39
2.3.10 添加其它实现代码 40
2.3.11 编译ControlDemo部件 44
2.4 控件存活期和关键事件 46
2.4.1 控件存活期 46
2.4.2 UserControl的关键事件 47
2.4.3 控件实例的实体化和再实体化 48
2.5 小结 50
第3章 进度条控件实验 52
3.1 定义控件功能 52
3.2 创建控件工程 53
3.3 添加测试工程 54
3.4 绘制控件 57
3.5 声明变量 58
3.6 添加属性 58
3.7 添加UserControl_Resize事件 61
3.8 添加属性页 62
3.9 添加控件实现代码 64
3.10 添加测试代码 66
3.11 编译控件 67
3.12.2 绘制控件 68
3.12.1 功能改进 68
3.12 控件改进 68
3.12.3 事件代码 69
3.12.4 测试控件 70
3.12.5 编译控件 71
3.13 小结 72
第4章 三维效果显示控件 73
4.1 Control 3D控件功能描述 73
4.2 创建Control 3D控件工程 74
4.3 添加测试工程 75
4.4 绘制Control 3D控件 77
4.5 声明变量 78
4.6 添加控件属性 79
4.7 添加Initialize和Resize事件代码 83
4.8 添加属性页 84
4.8.1 添加属性页 85
4.8.2 设计控件通用属性页 85
4.8.3 连接属性页 87
4.9 添加控件实现代码 89
4.9.1 剔除命令码数字串中的无效数字 89
4.9.2 添加PaintTargetControls方法 91
4.9.3 实现FindTargetControls函数 92
4.9.4 实现CheckForTag函数 94
4.9.5 实现DrawLine过程代码 94
4.10 添加测试代码 98
4.11 编译Control 3D控件 100
4.12 小结 100
第5章 倒记时报警时钟控件 101
5.1 CntDwnClock控件功能描述 101
5.2 创建CountDownClock控件工程 101
5.3 添加测试工程 103
5.4 绘制CntDwnClock控件 105
5.5 声明变量 106
5.6 添加控件属性 108
5.7 添加Resize属性 120
5.8 添加属性页 121
5.8.1 添加属性页 121
5.8.2 设计控件time属性页 121
5.8.3 设计控件“杂项”属性页 126
5.8.4 连接属性页 128
5.9.1 添加内部时钟控件tmrTime的Timer事件代码 130
5.9 添加控件实现代码 130
5.9.2 实现SetTime过程 131
5.9.3 实现CheckTime过程 132
5.9.4 实现设置时间的方法 134
5.9.5 实现时钟倒记时开始方法 135
5.9.6 实现时钟倒记时停止方法 135
5.9.6 实现修改当前时间的方法 137
5.10 添加测试代码 138
5.11 编译CntDwnClock控件 142
6.2 创建控件工程 143
第6章 滑动条控件实例 143
6.1 控件功能描述 143
6.3 添加测试工程 145
6.4 绘制HCSSlider控件 148
6.5 声明变量 151
6.6 添加属性 151
6.7 添加UserControl_Resize事件 154
6.8 添加控件实现代码 155
6.9 添加测试代码 157
6.10 编译控件 157
7.2 创建HitCount_Project控件工程 159
第7章 点击计数控件 159
7.1 HitCounter控件功能描述 159
7.3 添加测试工程 161
7.4 绘制HitCounter控件 166
7.5 声明变量 167
7.6 添加控件属性 168
7.7 添加Resize属性 173
7.8 添加控件实现代码 174
7.8.1 加载图像数据的实现代码LoadNumerls 174
7.8.2 添加控件显示的代码 176
7.8.3 添加控件公共方法 179
7.9 添加测试代码 180
7.10 编译HitCounter控件 185
7.11 小结 186
第8章 调整控件大小的Resizer控件 187
8.1 控件功能描述 188
8.2 创建Resizer控件工程 188
8.3 添加测试工程 189
8.5 声明变量 193
8.4 绘制Resizer控件 193
8.6 添加控件属性 195
8.7 添加Resize事件 197
8.8 添加控件实现代码 197
8.8.1 响应父窗口的Load事件 197
8.8.2 响应父窗口的Resize事件 198
8.8.3 实现Rebuild过程 199
8.8.3 实现Refresh过程 201
8.9 测试控件 206
8.10 编译Resizer控件 208
第9章 文本滚动控件 210
9.1 TextScroller控件的功能描述 211
9.2 创建TextScroller控件工程 211
9.3 添加测试工程 213
9.4 绘制TextScroller控件 216
9.5 声明变量 217
9.6 添加控件属性 218
9.7 添加属性页 227
9.7.1 添加属性页 227
9.7.2 设计控件通用属性页 228
9.7.3 连接属性页 232
9.8 添加控件实现代码 235
9.8.1 控件的清除代码 235
9.8.2 添加时钟子控件的Timer事件代码 236
9.9 测试控件 239
9.10 编译TextScroller控件 243
第10章 任务栏图标控件 245
10.1 SystemTray控件功能描述 245
10.2 创建SystemTray_Project控件工程 246
10.3 添加测试工程 247
10.4 绘制SystemTray控件 249
10.5 声明变量 250
10.5.1 添加函数Shell_NotifyIcon声明 250
10.5.2 函数Shell_NotifyIcon的功能 252
10.5.3 “NOTIFYICONDATA”数据类型定义 253
10.5.4 添加常量定义 254
10.5.5 添加其它变量和事件声明 256
10.6 添加控件属性 258
10.7 添加Resize事件 261
10.8.1 添加通用属性页 262
10.8 添加属性页 262
10.8.2 设计控件通用属性页 263
10.8.3 连接通用属性页 267
10.9 添加控件实现代码 268
10.9.1 实现增加任务栏图标方法 269
10.9.2 实现修改任务栏图标属性的方法 270
10.9.3 实现删除任务栏图标的方法 271
10.9.4 实现更新任务栏图标和提示文本的方法 271
10.9.5 实现接收回调消息的代码 272
10.10 添加测试代码 274
10.9.6 实现控件的终止事件代码 274
10.11 编译SystemTray控件 278
10.12 小结 278
第11章 日志文件控件 279
11.1 LogControl控件功能描述 279
11.2 创建LogControl_Project控件工程 280
11.3 添加测试工程 281
11.4 绘制LogControl控件 283
11.5 声明变量 285
11.6 添加控件属性 286
11.7.2 设计控件通用属性页 290
11.7 添加属性页 290
11.7.1 添加通用属性页 290
11.7.3 连接通用属性页 294
11.8 添加控件实现代码 295
11.8.1 实现LogData方法 295
11.8.2 实现LimitFiles过程 296
11.8.3 实现GetLowestFileNum函数 297
11.8.4 实现SizeIsOkay函数 300
11.8.5 实现GetHighestFileNum函数 301
11.8.7 实现控件的ViewLogFiles方法 302
11.8.6 实现GetNextFileNum函数 302
11.8.8 窗体frmMain的实现代码 303
11.9 添加测试代码 304
11.10 编译LogControl控件 307
11.11 小结 307
第12章 高级按钮控件 308
12.1 CoolCmdCtrl控件的功能描述 308
12.2 创建CommandCtrl_Project控件工程 311
12.3 添加测试工程 312
12.4 绘制CoolCmdCtrl控件 313
12.5 变量和函数声明 315
12.6 添加控件属性 318
12.7 添加Resize事件代码 327
12.8 添加AmbientChanged事件代码 329
12.9 添加属性页 329
12.9.1 添加通用属性页 330
12.9.2 设计控件通用属性页 330
12.9.3 连接通用属性页 333
12.10 添加控件实现代码 335
12.10.1 按钮实现思路 335
12.10.2 实现控件的DrawButton过程 336
12.10.3 添加获得焦点和失去焦点事件代码 343
12.10.4 添加鼠标按下事件代码 345
12.10.5 添加鼠标移动事件代码 346
12.10.6 添加鼠标弹起事件代码 347
12.10.7 添加其它事件代码 347
12.11 测试按钮控件 348
12.12 编译CoolCmdCtrl控件 351
12.13 小结 352
第二部分 创建构件服务器 353
第13章 构件服务器概述 355
13.1 ActiveX代码部件 355
13.2 构件服务器 355
13.2.1 ActiveX EXE构件服务器 356
13.2.2 ActiveX DLL构件服务器 356
13.2.3 ActiveX 文档服务器 356
13.3 在Visual Basic开发环境里开发ActiveX部件 357
13.3.1 创建Visual Basic的ActiveX部件工程 357
13.3.2 设置Visual Basic的ActiveX部件工程的属性 357
13.3.4 运行Visual Basic应用程序 360
13.3.3 编写Visual Basic工程代码 360
13.3.5 测试和调试Visual Basic应用程序 362
第14章 ActiveX的进程外构件服务器 366
14.1 ActiveX的进程外构件服务器 366
14.1.1 服务的异步通知 366
14.1.2 服务的多线程与并发 368
14.1.3 构件的类模块 370
14.2 建立进程外构件服务器 371
14.2.1 准备数据库 371
14.2.2 创建ActiveX EXE工程 378
14.2.3 在工程里添加数据访问对象(DAO)的引用 380
14.2.4 prjDBServer工程的类模块 382
14.2.5 ActiveX与自动化 383
14.2.6 编写工程代码 383
14.2.7 编写异步通知代码 386
14.2.8 编写多线程代码 388
14.2.9 设置工程属性 388
14.3 建立客户端应用程序 389
14.3.1 创建prjDBColient工程 389
14.3.2 添加clsDBServer引用 390
14.3.3 为工程增加一个DAO对象的引用 391
14.3.4 为工程增加一个模块 392
14.3.5 设计应用程序窗体 393
14.3.6 编写工程代码 397
14.4 编译并运行客户端应用程序 401
14.5 进程外构件服务器小结 402
第15章 ActiveX的进程内构件服务器 403
15.1 ActiveX的进程内构件服务器 403
15.2 建立进程内构件服务器 403
15.2.1 创建prjSocketsDLL工程 403
15.2.2 设计frmWinsockFrm窗体 406
15.2.3 为prjSocketsDLL编写代码 409
15.2.4 编译prjSocketsDLL工程到DLL 430
15.3 建立测试应用程序 431
15.3.1 创建prjInternetChat工程 431
15.3.2 设计frmInternetChat窗体 432
15.3.3 为frmInternetChat窗体编写代码 442
15.4 编译并运行客户端应用程序 445
15.5 进程内构件服务器小结 447
16.1.2 创建ActiveX文档的基础 448
16.1.1 创建和部署ActiveX文档的优点 448
16.1 ActiveX文档 448
第16章 ActiveX文档 448
16.1.3 ActiveX文档的组成部分 449
16.1.4 ActiveX文档生命期内的关键事件 450
16.1.5 ActiveX文档的设计考虑 451
16.2 使用ActiveX建立ActiveX文档 452
16.2.1 创建ActiveX文档工程 452
16.2.2 设计用户文档 453
16.2.3 添加第二个用户文档 455
16.2.4 设计第二个用户文档 456
16.2.5 添加“关于”窗体 457
16.2.6 设计用户文档的菜单 458
16.2.7 添加弹出对话框窗体 459
16.2.8 编写工程代码 461
16.3 测试和调试ActiveX文档 466
16.4 编译和发布ActiveX文档 468
16.4.1 设置ActXDoc工程的版本兼容性 469
16.4.2 编译ActXDoc工程 470
16.4.3 为当前工程建立一个Internet发布 470
16.5 ActiveX文档小结 477