前言 1
第1章 概述 1
1.1 Visual Basic的特点 1
1.1.1 可视化 1
1.1.2 面向对象编程 2
1.1.3 事件驱动 3
1.1.4 OLE和ActiveX 4
1.2 Visual Basic6.0的新功能 4
1.2.1 数据访问 4
1.2.2 语言功能 5
1.2.3 向导 6
1.2.4 控件 6
1.2.5 Internet 6
1.2.6 部件的建立 7
1.3 安装、运行和联机帮助 7
1.3.1 Visual Basic6.0的版本 7
1.3.2 Visual Studio 8
1.3.3 对配置的要求 8
1.3.4 安装 8
1.3.5 运行 14
1.3.6 联机帮助系统 15
1.4 编码约定 16
1.4.1 变量作用域的命名约定 16
1.4.2 变量类型的命名约定 17
1.4.3 对象的命名约定 17
1.4.4 数据库对象前缀 19
1.4.5 菜单前缀和常量命名约定 20
1.4.6 代码注释约定 20
第2章 集成开发环境 22
2.1 集成开发环境的操作界面 22
2.2 集成开发环境的主要特点 24
2.3 集成开发环境的组成 24
2.3.1 菜单栏 24
2.3.2 工具栏 25
2.3.3 工程资源管理器窗口 26
2.3.4 属性窗口 26
2.3.5 窗体布局窗口 27
2.3.6 工具箱 28
2.3.7 代码窗口和对象窗口 29
2.3.8 立即窗口 30
2.3.9 本地窗口 30
2.3.10 监视窗口 30
2.4 集成开发环境的模式 30
2.4.1 集成开发环境的模式转换 30
2.4.2 设计模式 30
2.4.3 运行模式 31
2.4.4 中断模式 31
2.5 集成开发环境的应用技术 31
2.5.1 代码编辑器设置 31
2.5.2 代码窗口的环境设置 34
2.5.3 多控件调整 35
2.5.4 设置启动窗体和启动过程 36
2.5.5 对EXE文件进行设置 37
2.5.6 添加调试、编辑和窗体编辑器工具栏 39
2.5.7 可执行文件的优化 40
2.5.8 使用书签 41
2.5.9 使用对象浏览器 42
2.6 电脑动画程序示例 43
2.6.1 示例:动画_蝴蝶飞舞 43
2.6.2 示例:动画_月有圆缺 46
2.6.3 文件的保存、打开和制作EXE文件 48
2.7 开发应用程序的一般步骤 48
2.8 应用程序向导 50
2.8.1 “VB应用程序向导”的功能 50
2.8.2 “VB应用程序向导”的使用方法 50
2.8.3 “VB应用程序向导”所生成的代码 55
2.8.4 Me和App关键字 56
2.8.5 在向导所生成的框架中添加控件和代码 57
2.8.6 构成Visual Basic工程的文件类型和保存 58
第3章 程序设计语法 60
3.1 语句行和物理行 61
3.1.1 断句符 61
3.1.2 连写的语句行 61
3.1.3 注释行 62
3.2 常量 62
3.2.1 使用常量的必要性 62
3.2.2 常量的分类 63
3.2.3 枚举型常量 64
3.2.4 示例:枚举型常量 64
3.3 变量 66
3.3.1 变量的类型 66
3.3.2 变量的命名 67
3.3.3 变量的声明 68
3.3.4 变量的赋值 69
3.3.5 变体型变量 75
3.3.6 对象变量 76
3.3.7 变量类型识别 77
3.3.8 变量类型变换 80
3.3.9 变量的作用域和有效周期 84
3.4 数字类型和运算符 85
3.4.1 运算符和优先级 85
3.4.2 算术运算 85
3.4.3 位运算 87
3.4.4 其它运算符 91
3.5 成员函数 92
3.5.1 成员函数表 92
3.5.2 DoEvents函数 95
3.5.3 Shell函数 97
3.5.4 算例:Monte_Carlo法求积分 99
3.6 字符串处理 101
3.6.1 字符串转换 101
3.6.2 字符串检验 109
3.6.3 字符大小写 110
3.6.4 字符空格处理 112
3.6.5 字符串比较 113
3.6.6 字符串提取 114
3.6.7 字符串查找和定位 115
3.6.8 字符串统计 116
3.6.9 字符串替换 118
3.6.10 字符串数组的过滤 120
3.6.11 字符串的分解和合成 121
3.6.12 算例:字符串冒泡排序 122
3.7 数组 124
3.7.1 一维数组 124
3.7.2 多维数组 125
3.7.3 数组声明语句和作用域 125
3.7.4 数组的赋值和调用 127
3.7.5 改变数组下界 129
3.7.6 动态数组 130
3.7.7 静态数组 133
3.7.8 数组的刷新 134
3.7.9 包括数组的变体型数组 137
3.7.10 动态数组的增强功能 139
3.7.11 算例:数组希尔排序 140
3.8 结构 142
3.8.1 结构的定义 142
3.8.2 结构的组成 143
3.8.3 示例:结构 143
3.9 集合 144
3.9.1 集合的创建 144
3.9.2 集合的属性 145
3.9.3 集合的方法 145
3.9.4 集合的遍历 145
3.9.5 集合与数组的比较 146
3.9.6 示例:集合 146
3.10 字典 148
3.10.1 字典的创建 149
3.10.2 字典的属性 149
3.10.3 字典的方法 150
3.10.4 字典的遍历 151
3.10.5 字典与集合的比较 152
3.10.6 示例:字典 152
3.11 语句 154
3.11.1 条件语句 154
3.11.2 条件函数 157
3.11.3 循环语句 162
3.11.4 转移语句 172
3.12 过程 173
3.12.1 模块 173
3.12.2 子程序 174
3.12.3 函数 175
3.12.4 子程序与函数的区别 176
3.12.5 过程创建 176
3.12.6 过程调用 178
3.12.7 外部调用 180
3.12.8 递归调用 183
3.12.9 过程内变量的连续性 185
3.12.10 参数传递 190
3.12.11 数组实参 193
3.12.12 结构实参 195
3.12.13 可选参数 197
3.12.14 任意数目参数 199
3.12.15 指明参数 200
3.12.16 对象参数 201
3.12.17 函数返回数组的新增功能 203
3.12.18 算例:斐波那契数 204
3.13 移植QBasic应用程序 206
3.13.1 加载QBasic文件 206
3.13.2 注意事项 206
3.13.3 算例:正弦积分 206
第4章 窗体、菜单和窗体栏目 210
4.1 窗体概念 210
4.1.1 窗体的结构 210
4.1.2 窗体和窗口 211
4.1.3 窗体的通用称呼 212
4.2 窗体属性 213
4.2.1 Name和Caption 213
4.2.2 AutoRedraw 214
4.2.3 BackColor 214
4.2.4 BorderStyle 214
4.2.5 ControlBox 215
4.2.6 Enabled 215
4.2.7 Icon 215
4.2.8 Picture 216
4.2.9 窗体尺寸 216
4.2.10 坐标系统 216
4.2.11 Visible 216
4.2.12 WindowState 217
4.2.13 示例:窗体属性设置 217
4.3 窗体事件 218
4.3.1 Lodad和Unload事件 218
4.3.2 Initialize事件 219
4.3.3 Click和DblClick事件 220
4.3.4 Resize事件 221
4.3.5 Activate和Deactivate事件 221
4.3.6 GotFocus和LostFocus事件 221
4.3.7 Paint事件 222
4.3.8 MouseDown和MouseUp事件 222
4.3.9 MouseMove事件 223
4.3.10 示例:鼠标画线 223
4.3.11 KeyDown和KeyUp事件 225
4.3.12 KeyPress事件 225
4.3.13 示例:键盘事件 225
4.3.14 QueryUnload事件 227
4.3.15 示例:窗体激活事件 227
4.3.16 算例:地理信息系统坐标 230
4.3.17 算例:栅格图矢量化 231
4.4 多窗体 232
4.4.1 多窗体的特点 232
4.4.2 多窗体的建立 232
4.4.3 启动窗体 233
4.4.4 多窗体的工程存盘 233
4.5 窗体常用语句和方法 233
4.5.1 Load和Unload语句 233
4.5.2 Show和Hide方法 234
4.5.3 Refresh方法 235
4.5.4 Move方法 235
4.5.5 ZOrder方法 235
4.5.6 示例:窗体移动 236
4.6 窗体打印、信息函数和语句 237
4.6.1 窗体打印 237
4.6.2 MsgBox函数和语句 237
4.6.3 InputBox函数 238
4.6.4 示例:保存数据提示 239
4.6.5 示例:结构数据输入 241
4.6.6 示例:字典数据输入 243
4.7 多文档界面 244
4.7.1 父窗体和子窗体 245
4.7.2 设置父窗体为启动窗体 245
4.7.3 建立父窗体控制区 246
4.7.4 与MDI有关的属性、方法和事件 247
4.7.5 示例:多文档界面 247
4.7.6 窗体数组 253
4.7.7 示例:窗体数组 253
4.8 菜单 256
4.8.1 菜单编辑器 257
4.8.2 编制下拉式菜单 259
4.8.3 示例:下拉式菜单 267
4.8.4 弹出式菜单 270
4.8.5 示例:弹出式菜单 273
4.8.6 菜单数组 275
4.8.7 示例:菜单数组 277
4.8.8 示例:可增减菜单数组 280
4.8.9 多文档界面菜单 282
4.8.10 示例:多文档界面菜单 283
4.9 工具栏 288
4.9.1 制作工具栏所需要的控件 288
4.9.2 工具栏的制作过程 289
4.9.3 示例:简单工具栏 290
4.9.4 利用关键字编写事件代码 291
4.9.5 按钮与菜单选项连接 291
4.9.6 图像按钮 292
4.9.7 工具栏的完善 292
4.9.8 多文档界面的工具栏 295
4.9.9 示例:多文档界面工具栏 297
4.9.10 使用菜单和工具栏向导 303
4.9.11 示例:向导制作的菜单和工具栏 304
4.10 状态栏 307
4.10.1 状态栏控件的安置 308
4.10.2 添加窗格 308
4.10.3 窗格显示功能 308
4.10.4 窗格外观设置 309
4.10.5 窗格图像 309
4.10.6 示例:状态栏动画 310
4.11 进度栏 313
4.11.1 进度栏控件的属性 314
4.11.2 示例:进度栏 314
4.12 Coolbar 316
4.12.1 Coolbar的功能 316
4.12.2 Coolbar的安装 317
4.12.3 Coolbar的属性 318
4.12.4 为Coolbar增加或删除带对象 318
4.12.5 将控件加入带区 320
4.12.6 Add方法 321
4.12.7 示例:Coolbar子控件的创建 322
4.12.8 示例:Coolbar的应用 323
4.13 用户界面设计 327
4.13.1 设计用户界面的一些基本要求 328
4.13.2 设计窗体的一些考虑 328
第5章 控件 330
5.1 概述 330
5.1.1 在窗体中加入控件 330
5.1.2 设置属性 331
5.1.3 缺省属性 331
5.1.4 共同属性 331
5.1.5 通用语句和方法 332
5.1.6 成组操作 333
5.1.7 控件集合 333
5.1.8 示例:控件集合 335
5.2 标签和文本框 336
5.2.1 标签属性 337
5.2.2 文本框属性 338
5.2.3 文本框事件和方法 338
5.2.4 示例:文本框_密码 338
5.2.5 控件数组 341
5.2.6 示例:文本框数组 341
5.3 命令按钮、复选框、单选按钮和框架 343
5.3.1 命令按钮属性和事件 344
5.3.2 算例:命令按钮_计算器 345
5.3.3 复选框的Value属性 350
5.3.4 示例:复选框_改变字体 351
5.3.5 单选按钮和框架 352
5.3.6 示例:单选按钮和框架 353
5.4 列表框和组合框 355
5.4.1 列表框 355
5.4.2 示例:列表框_交换项目 357
5.4.3 示例:列表框_IntemData属性 361
5.4.4 组合框 363
5.4.5 示例:组合框_选择项目 364
5.4.6 算例:组合框_文献目录 366
5.5 水平滚动条和垂直滚动条 371
5.5.1 滚动条属性 371
5.5.2 滚动条事件 371
5.5.3 示例:滚动条_取值 372
5.6 计时器 374
5.6.1 计时器属性 374
5.6.2 计时器事件 374
5.6.3 示例:计时器_闹钟 374
5.7 富文本框 376
5.7.1 富文本框与文本框的比较 376
5.7.2 富文本框控件 377
5.7.3 富文本框属性 377
5.7.4 富文本框方法 379
5.7.5 富文本框事件 379
5.7.6 富文本框应用技术 380
5.7.7 示例:富文本框操作 384
5.7.8 算例:富文本框编辑器 388
5.8 网格 398
5.8.1 利用KeyPress事件实现网格数据输入 399
5.8.2 示例:公司的业绩 399
5.8.3 利用网格外的文本框实现数据录入 403
5.8.4 示例:网格_结构 403
5.8.5 示例:网格_集合 408
5.8.6 网格与文本框集成 409
5.8.7 示例:网格_字典 410
5.8.8 网格的属性 415
5.8.9 算例:高斯-赛德尔迭代 419
5.9 滑道和上下控件 426
5.9.1 概述 426
5.9.2 滑道和上下控件的安装 426
5.9.3 滑道属性和操作 426
5.9.4 算例:滑道_方程组阶数 430
5.9.5 上下控件属性 431
5.9.6 上下控件操作 431
5.9.7 算例:上下控件_方程组的多种解法 432
5.10 TabStrip控件和SSTab控件 443
5.10.1 TabStrip控件和SSTab控件的安装 443
5.10.2 增加、删除TabStrip选项卡条 444
5.10.3 TabStrip属性 445
5.10.4 TabStrip操作 446
5.10.5 示例:TabStrip操作 447
5.10.6 SSTab与TabStrip的比较 448
5.10.7 增加、删除SSTab选项卡条 448
5.10.8 SSTab属性 450
5.10.9 SSTab操作 451
5.10.10 示例:SSTab操作 452
5.11 MaskEdBox控件 457
5.11.1 MaskEdBox控件的安装 457
5.11.2 MaskEdBox控件属性 457
5.11.3 MaskEdBox控件操作 460
5.11.4 示例:MaskEdBox属性 460
5.11.5 示例:MaskEdBox操作 461
5.12 图像组合框 463
5.12.1 图像组合框的安装 463
5.12.2 添加或删除列表项 463
5.12.3 为列表项添加图像 464
5.12.4 列表项的缩进 465
5.12.5 示例:图像组合框_选择项目 466
5.12.6 算例:图像组合框_驱动器信息 468
5.13 平面滚动条 470
5.13.1 平面滚动条的安装 470
5.13.2 平面滚动条属性 471
5.13.3 平面滚动条操作 471
5.13.4 示例:平面滚动条属性和操作 472
5.14 月浏览器 474
5.14.1 月浏览器的安装 474
5.14.2 月浏览器属性 475
5.14.3 月浏览器方法 476
5.14.4 月浏览器事件 478
5.14.5 示例:月浏览器属性和操作 479
5.15 日期时间拾取器 482
5.15.1 日期时间拾取器的安装 482
5.15.2 日期时间拾取器属性 483
5.15.3 日期时间拾取器格式 484
5.15.4 示例:日期时间拾取器_选择 485
5.15.5 示例:日期时间拾取器_回调字段 486
第6章 绘图和打印 489
6.1 位图和矢量图 489
6.2 图片框和图像框 490
6.2.1 图片框与图像框的相同点 490
6.2.2 图片框与图像框的不同点 490
6.2.3 图形文件格式 491
6.2.4 调整图形大小 491
6.2.5 加载和保存图形 491
6.2.6 示例:用LoadPicture加载图形 494
6.2.7 示例:使用剪贴板加载图形 495
6.2.8 示例:保存图形 497
6.2.9 PaintPicture方法 498
6.2.10 示例:PaintPicture方法 499
6.2.11 算例:Paint事件和Point方法 500
6.3 直线和形状 502
6.3.1 直线和形状的属性 502
6.3.2 “命令按钮”的多样化 503
6.3.3 示例:直线和形状 504
6.4 图像列表 506
6.4.1 图像列表控件 506
6.4.2 添加或删除图像 506
6.4.3 提取图像 508
6.4.4 创建图标 508
6.4.5 Draw方法 509
6.4.6 示例:ImageList操作 509
6.4.7 Overlay方法 511
6.4.8 示例:图像重叠 512
6.5 坐标系统 513
6.5.1 坐标系设定 513
6.5.2 示例:自定义坐标系 514
6.5.3 不同坐标系下的坐标值 517
6.5.4 示例:坐标换算 517
6.5.5 示例:选择坐标系 519
6.6 颜色设定 525
6.6.1 8色设置 525
6.6.2 16色设置 526
6.6.3 RGB函数 528
6.6.4 示例:RGB调色板 529
6.6.5 取得基色值的方法 532
6.6.6 示例:颜色的分解 532
6.6.7 示例:颜色的渐变 533
6.7 CurrentX和CurrentY属性值 535
6.8 画点法 535
6.8.1 PSet方法 535
6.8.2 算例:简单的初始界面 537
6.9 画直线法 540
6.9.1 Line方法 540
6.9.2 DrawStyle属性 541
6.10 画矩形法 543
6.10.1 Line方法 543
6.10.2 FillStyle属性和FillColor属性 543
6.11 画圆法 545
6.11.1 Circle方法 545
6.11.2 示例:画实心圆 547
6.12 画椭圆法 548
6.12.1 Circle方法 548
6.12.2 示例:颜色渐变的椭圆 549
6.13 画弧法 552
6.14 曲线画法 554
6.14.1 曲线 554
6.14.2 示例:正弦曲线 554
6.14.3 算例:组合绘图 556
6.15 绘图模式 561
6.15.1 绘图模式的设置 561
6.15.2 示例:绘图模式_互补色 562
6.15.3 示例:绘图模式_Xor 564
6.15.4 算例:日历表 567
6.16 统计图表画法 571
6.16.1 图表控件 571
6.16.2 图表控件的数据获取 572
6.16.3 图表控件的属性设置 574
6.16.4 示例:统计图_条形图 575
6.16.5 示例:统计图_折线图 576
6.16.6 示例:统计图_域型图 577
6.16.7 示例:统计图_阶梯图 578
6.16.8 示例:统计图_联合图 579
6.16.9 示例:统计图_饼形图 580
6.16.10 示例:统计图_坐标图 582
6.17 打印 583
6.17.1 Printer对象 583
6.17.2 Print方法 585
6.17.3 系统的字体设置 585
6.17.4 示例:打印_全部字体 585
6.17.5 容器对象的字体和字形设置 586
6.17.6 示例:打印_字体和字形设置 586
6.17.7 字体的高度和宽度 588
6.17.8 示例:打印_控制输出宽度 588
6.17.9 设定打印位置 589
6.17.10 示例:打印_设定位置 590
第7章 文件及有关的控件 591
7.1 文件概述 591
7.1.1 文件的结构 592
7.1.2 文件的类型 592
7.2 顺序文件 593
7.2.1 写文件 593
7.2.2 示例:文件_顺序文件的写入 594
7.2.3 读文件 595
7.2.4 示例:文件_顺序文件的读出 595
7.3 常用函数和语句 598
7.3.1 常用函数 599
7.3.2 常用语句 599
7.3.3 示例:文件_顺序文件_函数用法 600
7.4 随机文件 602
7.4.1 自定义变量和随机文件 602
7.4.2 建立文件 602
7.4.3 读出数据 603
7.4.4 示例:文件_随机文件_天气信息 604
7.4.5 记录操作 607
7.4.6 示例:文件_随机文件_记录操作 608
7.5 二进制文件 613
7.5.1 打开 613
7.5.2 写和读 613
7.5.3 定位 614
7.5.4 示例:文件_二进制文件 614
7.5.5 示例:文件_二进制文件_Seek 616
7.6 有关文件的深入讨论 619
7.6.1 文件属性 619
7.6.2 示例:文件_属性 619
7.6.3 文件建立时间 623
7.6.4 目录管理 623
7.6.5 示例:目录_Dir 625
7.6.6 示例:目录_CurDir 627
7.6.7 示例:目录_常用操作 628
7.6.8 示例:目录_分解 629
7.7 文件系统对象 631
7.7.1 文件系统对象的加载 632
7.7.2 文件系统对象的建立和操作 632
7.7.3 示例:文件系统对象_应用 632
7.7.4 文件系统对象的层状结构 633
7.7.5 示例:文件系统对象_驱动器 639
7.7.6 示例:文件系统对象_目录 641
7.7.7 示例:文件系统对象_目录结构 643
7.7.8 示例:文件系统对象_文件 645
7.7.9 示例:文件系统对象_文本流 646
7.7.10 示例:文件系统对象_文本流搜索 648
7.8 驱动器列表框、目录列表框、文件列表框 650
7.8.1 属性 651
7.8.2 事件 651
7.8.3 示例:文件控件_选择文件 652
7.8.4 示例:文件控件_取得文件全名 653
7.9 公共对话框 654
7.9.1 公共对话框控件 654
7.9.2 公共对话框的类型 655
7.9.3 “打开/另存为”对话框 656
7.9.4 示例:公共对话框_选择一个文件 660
7.9.5 示例:公共对话框_选择多个文件 661
7.9.6 示例:公共对话框_另存为 663
7.9.7 颜色对话框 666
7.9.8 示例:公共对话框_设置颜色 668
7.9.9 字体对话框 668
7.9.10 示例:公共对话框_设置字体 670
7.9.11 打印对话框 671
7.9.12 示例:公共对话框_打印设置 673
7.9.13 帮助窗口 675
7.9.14 示例:公共对话框_帮助 676
7.9.15 算例:公共对话框_富文本框编辑器 677
7.10 树状浏览器 688
7.10.1 树状浏览器控件 688
7.10.2 树状浏览器属性 689
7.10.3 建立节点树 692
7.10.4 示例:树状浏览器_添加节点 694
7.10.5 示例:树状浏览器_驱动器 696
7.10.6 节点的修饰 698
7.10.7 节点信息 698
7.10.8 节点集合的查找 702
7.10.9 示例:树状浏览器_节点文本变换 703
7.10.10 节点树的移动和复制 707
7.10.11 示例:树状浏览器_拖放 708
7.11 列表浏览器 713
7.11.1 列表浏览器控件 713
7.11.2 列表浏览器类型 713
7.11.3 列表浏览器属性 715
7.11.4 为列表浏览器添加内容 717
7.11.5 示例:列表浏览器_操作 719
7.11.6 排序 721
7.11.7 示例:列表浏览器_排序 721
7.11.8 列的位置调整 723
7.11.9 项目的查找 723
7.11.10 算例:树状浏览器_列表浏览器 726
第8章 错误处理和程序调试 731
8.1 错误类型 731
8.1.1 语法错误 731
8.1.2 运行错误 732
8.1.3 逻辑错误 732
8.2 运行错误的提示信息 732
8.2.1 运行错误信息框 732
8.2.2 运行错误编号表 733
8.3 Err对象 736
8.3.1 Err对象的属性和方法 736
8.3.2 示例:运行错误_获得说明 736
8.3.3 示例:运行错误_文件检查 737
8.4 错误处理例程 741
8.4.1 加入错误处理例程的步骤 741
8.4.2 示例:运行错误_除法 742
8.5 模拟错误 746
8.5.1 模拟错误的作用 746
8.5.2 示例:运行错误_模拟错误 746
8.6 自定义错误 751
8.6.1 自定义错误方法 751
8.6.2 示例:运行错误_自定义错误 751
8.7 预防用户错误 754
8.7.1 界面的设计 754
8.7.2 对用户输入的处理 754
8.7.3 Visual Basic6.0新增的校验功能 756
8.7.4 示例:数据输入_限制焦点 757
8.8 调试工具 758
8.8.1 调试工具的加入 759
8.8.2 设置调试断点 759
8.8.3 示例:调试_断言 761
8.8.4 示例:调试_断点 761
8.8.5 单步执行 763
8.8.6 调试窗口 764
8.8.7 示例:调试_调用堆栈 769
8.9 调试方法的综合使用 770
8.10 有关编程时少犯错误的建议 773
8.10.1 变量的显式声明 773
8.10.2 数组的显示声明 774
8.10.3 过程中的参数 774
8.10.4 编码中的技术问题 775