标题：Visual Basic开发实战宝典
图书信息
出版社: 清华大学出版社; 第1版 (2010年1月1日)
丛书名: 软件开发实战宝典
平装: 731页
正文语种: 简体中文
开本: 16
ISBN: 9787302210870
条形码: 9787302210870
尺寸: 26 x 20.4 x 3 cm
重量: 1.4 Kg
内容简介
《Visual Basic开发实战宝典》从初学者的角度讲述使用Visual Basic 6.0进行程序开发应该掌握的各项技术，内容突出“基础”、“全面”、“深入”的特点，强调“实战”效果。只掌握和理解技术，而没有实际应用，等于没有掌握技术。在《Visual Basic开发实战宝典》各章介绍技术的同时，都会提供示例或实例，在各章的结尾也安排有综合应用，目的是通过几个小型项目综合应用本章所学习的知识，做到理论联系实际。在《Visual Basic开发实战宝典》的后5章中提供了5个完整的项目实例，讲述从前期规划、设计流程图到项目最终实施的整个实现过程。
全书共分24章，包括Visual Basic集成开发环境，VB语言基础，算法和程序控制结构，数组与集合，过程，内置函数，窗体和系统对象，常用标准控件，常用ActiveX控件，菜单、工具栏和状态栏，对话框，文件系统编程，图形图像技术，多媒体技术，鼠标键盘处理，数据库开发技术，数据库控件，数据环境设计器及报表生成，程序调试和错误处理，企业人事管理系统，叶子图像处理专家，个人文档管理系统，无纸化考试系统和局域网聊天系统等。
《Visual Basic开发实战宝典》适合有志于从事软件开发的初学者、高校计算机相关专业学生和毕业生，也可作为软件开发人员的参考手册，或者高校的教学参考书。
目录
第1部分 基础知识
第1章 Visual Basic集成开发环境 3
视频讲解：138分钟
1.1 Visual Basic简介 4
1.1.1 Visual Basic概述 4
1.1.2 Visual Basic 6.0的特点 4
1.1.3 Visual Basic 6.0的局限性 5
1.2 学习Visual Basic的好处 5
1.2.1 Visual Basic可以做什么 5
1.2.2 学习VB的几点建议 6
1.3 VB开发环境的安装和程序启动 7
1.3.1 Visual Basic 6.0的运行环境 7
1.3.2 Visual Basic 6.0+SP6的安装 7
1.3.3 Visual Basic 6.0的启动 9
1.4 Visual Basic 6.0的集成开发环境 10
1.4.1 集成开发环境简介 10
1.4.2 菜单栏 11
1.4.3 工具栏 13
1.4.4 工具箱 14
1.4.5 工程资源管理器 16
1.4.6 属性窗口 17
1.4.7 窗体布局窗口 18
1.4.8 窗体设计器 18
1.4.9 代码编辑窗口 19
1.5 VB的MDI和SDI开发环境 19
1.5.1 多文档界面开发环境 20
1.5.2 单文档界面开发环境 20
1.6 开发环境使用技巧 20
1.6.1 设置启动时保存 21
1.6.2 自定义工具栏 22
1.6.3 为代码编辑器设置鼠标滚动 22
1.6.4 设置网格大小和不对齐到网格 23
1.6.5 设置在编辑器中要求变量声明 24
1.6.6 规范代码缩进格式 24
1.7 Visual Basic 6.0的帮助系统 25
1.7.1 MSDN Library的安装与使用 25
1.7.2 利用附带的实例源程序学习编程 26
1.7.3 使用Visual Basic的帮助菜单 27
1.8 创建第一个VB程序 27
1.8.1 创建工程文件 28
1.8.2 设计界面 28
1.8.3 编写代码 28
1.8.4 调试运行 29
1.8.5 保存工程 29
1.8.6 编译程序 30
1.9 利用应用程序向导自动生成应用程序 30
1.10 小结 33
1.11 实战练习 33
第2章 VB语言基础 35
视频讲解：104分钟
2.1 关键字和标识符 36
2.2 基本数据类型 36
2.2.1 字符型 37
2.2.2 数值型 38
2.2.3 布尔型 39
2.2.4 日期型 39
2.2.5 变体型 40
2.2.6 对象型 40
2.3 记录类型 41
2.4 枚举类型 42
2.5 变量 43
2.5.1 什么是变量 43
2.5.2 变量的命名 43
2.5.3 变量的声明 44
2.6 变量的作用域 46
2.6.1 静态变量 47
2.6.2 变量同名问题的处理 47
2.7 常量 48
2.7.1 常量的声明 48
2.7.2 局部常量和全局常量 49
2.8 运算符 49
2.9 表达式 51
2.9.1 什么是表达式 51
2.9.2 表达式的种类 51
2.9.3 运算符在表达式中的优先级 53
2.10 语言基础应用技巧 54
2.10.1 如何处理溢出 54
2.10.2 正确使用“&”和“+” 54
2.10.3 正确使用Or、Xor、And、Eqv、Imp运算符 55
2.11 小结 56
2.12 实战练习 56
第3章 算法和程序控制结构 57
视频讲解：161分钟
3.1 算法 58
3.1.1 什么是算法 58
3.1.2 算法的特性 59
3.1.3 算法的描述方法 59
3.1.4 构成算法的基本控制结构 62
3.2 顺序结构 64
3.2.1 赋值语句 64
3.2.2 数据的输入 66
3.2.3 数据的输出 67
3.3 选择结构 68
3.3.1 单分支If…Then语句 69
3.3.2 双分支If…Then…Else语句 70
3.3.3 If语句的嵌套 71
3.3.4 多分支If…Then…ElseIf语句 75
3.3.5 Select Case语句 76
3.3.6 IIf函数 79
3.4 循环结构 80
3.4.1 For…Next循环语句 80
3.4.2 For Each…Next循环语句 83
3.4.3 Do…Loop循环语句 83
3.4.4 多重循环 87
3.4.5 选择结构与循环结构的嵌套 88
3.5 其他辅助控制语句 89
3.5.1 跳转语句GoTo 89
3.5.2 复用语句With…End With 90
3.5.3 退出语句Exit 91
3.5.4 结束语句End 91
3.6 实战 92
3.6.1 计算最大公约数和最小公倍数 92
3.6.2 判断素数 94
3.6.3 验证哥德巴赫猜想 95
3.7 小结 96
3.8 实战练习 97
第4章 数组与集合 99
视频讲解：111分钟
4.1 数组的概述 100
4.1.1 数组的概念 100
4.1.2 数组与简单变量的区别 100
4.1.3 数组的分类 100
4.2 静态数组 101
4.2.1 静态数组的声明和使用 101
4.2.2 一维数组 102
4.2.3 二维数组 104
4.2.4 多维数组 105
4.3 动态数组 106
4.3.1 动态数组的声明 106
4.3.2 动态数组的使用 106
4.3.3 数组的清除 107
4.4 控件数组 108
4.4.1 控件数组的概念 108
4.4.2 控件数组的创建 108
4.4.3 控件数组的使用 109
4.4.4 加载和删除控件数组中的控件 109
4.5 数组相关函数及语句 111
4.5.1 使用Array函数创建数组 111
4.5.2 使用UBound和LBound函数获取数组上下标 111
4.5.3 使用Split函数生成一维字符串数组 112
4.5.4 使用Option Base语句声明数组下标最大值 113
4.6 集合 113
4.6.1 集合的创建 113
4.6.2 控件集合（Controls集合） 114
4.7 实战 117
4.7.1 动态添加和删除控件 117
4.7.2 利用数组实现随机抽取幸运观众 119
4.7.3 利用二维数组向网格控件中添加背景图片 120
4.8 小结 122
4.9 实战练习 122
第5章 过程 123
视频讲解：84分钟
5.1 认识过程 124
5.2 事件过程 124
5.2.1 建立事件过程 125
5.2.2 调用事件过程 125
5.3 子过程（Sub过程） 126
5.3.1 建立子过程 126
5.3.2 调用子过程 128
5.3.3 调用其他模块中的子过程 129
5.4 函数过程（Function过程） 129
5.4.1 建立函数过程 129
5.4.2 调用函数过程 130
5.4.3 函数过程与子过程的区别 130
5.5 参数的传递 131
5.5.1 认识参数 131
5.5.2 参数按值和按地址传递 132
5.5.3 数组参数 134
5.5.4 对象参数 135
5.6 嵌套过程 136
5.7 递归过程 137
5.8 属性过程（Property过程） 138
5.8.1 使用属性过程建立类的属性 138
5.8.2 使用类属性 139
5.8.3 只读属性和对象属性 140
5.9 工程中的模块 140
5.9.1 窗体模块 140
5.9.2 标准模块 141
5.9.3 类模块 142
5.9.4 标准模块与类模块的区别 142
5.10 过程的作用域 144
5.11 实战 146
5.11.1 编写计算圆面积的函数过程 146
5.11.2 自定义二进制转换为十进制的函数 146
5.12 小结 147
5.13 实战练习 147
第6章 内置函数 149
视频讲解：111分钟
6.1 字符串函数 150
6.1.1 获取字符长度（Len函数） 150
6.1.2 取左（右）面指定个数的字符（Left和Right函数） 151
6.1.3 截取字符串（Mid函数） 152
6.1.4 获取字符出现的位置（InStr和InStrRev函数） 153
6.1.5 去除空格（Trim、RTrim、Ltrim函数） 155
6.1.6 将字符串转换为大（小）写（UCase和LCase函数） 156
6.2 数学函数 158
6.2.1 求绝对值（Abs函数） 158
6.2.2 求平方根（Sqr函数） 158
6.2.3 e的n次方（Exp函数） 159
6.2.4 求自然对数（Log函数） 160
6.2.5 返回符号（Sgn函数） 161
6.2.6 取整（Int和Fix函数） 161
6.3 判断函数 162
6.3.1 判断是否为数组（IsArray函数） 162
6.3.2 判断是否为Null（IsNull函数） 163
6.3.3 判断是否为数字（IsNumeric函数） 164
6.4 类型转换函数 164
6.4.1 转换为字符型（Str函数） 164
6.4.2 转换为数值型（Val函数） 165
6.4.3 转换为AscII（Asc函数） 166
6.4.4 转换为字符（Chr函数） 167
6.5 日期和时间函数 168
6.5.1 Date、Now和Time函数 168
6.5.2 Weekday函数 168
6.5.3 返回年、月、日（Year、Month、Day函数） 170
6.5.4 返回时、分、秒（Hour、Minute、Second函数） 170
6.6 随机函数 171
6.6.1 初始化随机数（Randomize函数） 171
6.6.2 生成随机数（Rnd函数） 171
6.7 格式化函数 172
6.8 实战 175
6.8.1 判断某个时间段里有多少个工作日 175
6.8.2 数字时钟 176
6.8.3 计算器 178
6.9 小结 179
6.10 实战练习 179
第2部分 技术应用
第7章 窗体和系统对象 183
视频讲解：152分钟
7.1 窗体概述 184
7.1.1 窗体的结构 184
7.1.2 模式窗体和无模式窗体 184
7.1.3 SDI窗体和MDI窗体 185
7.2 窗体的属性 185
7.2.1 名称（Name属性） 185
7.2.2 标题（Caption属性） 186
7.2.3 图标（Icon属性） 187
7.2.4 背景（Picture属性） 187
7.2.5 边框样式（BorderStyle属性） 188
7.3 窗体的事件 190
7.3.1 单击和双击（Click/DbClick事件） 190
7.3.2 载入和卸载（Load/QueryUnload/Unload事件） 191
7.3.3 初始化（Initialize事件） 192
7.3.4 活动性（Activate/Deactivate事件） 193
7.3.5 焦点事件（GotFocus/LostFocus事件） 194
7.3.6 重绘（Paint事件） 195
7.3.7 调整大小（Resize事件） 196
7.4 窗体事件的生命周期 196
7.5 窗体的方法 199
7.5.1 加载窗体（Load方法） 199
7.5.2 卸载窗体（Unload方法） 199
7.5.3 显示窗体（Show方法） 200
7.5.4 隐藏窗体（Hide方法） 201
7.5.5 移动窗体（Move方法） 201
7.5.6 清除窗体（Cls方法） 202
7.5.7 在窗体上显示文本（Print方法） 202
7.5.8 打印窗体（PrintForm方法） 203
7.6 MDI窗体 204
7.6.1 MDI窗体概述 204
7.6.2 MDI窗体的创建 204
7.6.3 在MDI窗体中添加控件 205
7.6.4 MDI子窗体（MDIChild属性） 206
7.6.5 MDI窗体的特点 207
7.7 窗体应用技巧 208
7.7.1 如何设置闪烁的窗体标题栏 208
7.7.2 如何设置窗体前置 209
7.7.3 如何拖动无标题栏窗体移动 210
7.8 系统对象 211
7.8.1 应用程序对象（APP对象） 211
7.8.2 屏幕对象（Screen对象） 215
7.8.3 剪贴板对象（Clipboard对象） 216
7.8.4 调试对象（Debug对象） 218
7.9 实战 219
7.9.1 在窗口中平铺图片 219
7.9.2 透明窗体 220
7.9.3 利用APP对象防止程序重复 221
7.9.4 利用Screen对象获得系统中的可用字体 222
7.9.5 记录剪贴板内容 223
7.10 小结 224
7.11 实战练习 224
第8章 常用标准控件 225
视频讲解：199分钟
8.1 控件概述 226
8.1.1 控件的作用 226
8.1.2 控件的分类 226
8.1.3 控件的命名 227
8.1.4 控件的属性、方法和事件 228
8.2 控件的相关操作 228
8.2.1 向窗体上添加控件 228
8.2.2 设置控件大小和位置 229
8.2.3 复制控件 229
8.2.4 删除控件 229
8.2.5 锁定控件 230
8.2.6 使用窗体编辑器调整控件布局 230
8.3 界面设计的基本原则 231
8.4 标签控件（Label控件） 232
8.4.1 标签控件概述 232
8.4.2 标签控件常用属性 233
8.4.3 利用标签控件实现鼠标交互效果 234
8.5 文本框控件（TextBox控件） 234
8.5.1 文本框控件概述 234
8.5.2 文本框控件常用属性、方法和事件 235
8.5.3 利用文本框控件实现用户登录 238
8.6 命令按钮控件（CommandButton控件） 239
8.6.1 命令按钮概述 239
8.6.2 命令按钮的常用属性和事件 239
8.6.3 利用命令按钮实现加载图片的功能 240
8.7 单选按钮、复选框及框架 241
8.7.1 单选按钮（OptionButton控件） 241
8.7.2 复选框（CheckBox控件） 243
8.7.3 框架（Frame控件） 243
8.7.4 设置字体显示效果 244
8.8 列表框控件（ListBox控件） 245
8.8.1 列表框控件概述 245
8.8.2 列表框控件常用属性 245
8.8.3 随机抽取列表框中数据 249
8.9 组合框控件（ComboBox控件） 250
8.9.1 组合框控件概述 250
8.9.2 组合框控件常用属性、方法、事件 250
8.9.3 改变ComboBox控件下拉列表框的长度 252
8.10 滚动条控件（HScrollBar和VScrollBar控件） 253
8.10.1 滚动条控件概述 253
8.10.2 滚动条控件的属性和事件 253
8.10.3 利用滚动条浏览大幅图片 254
8.11 时钟控件（Timer控件） 255
8.11.1 Timer控件的属性和事件 255
8.11.2 利用Timer控件设计小游戏 256
8.12 实战 257
8.12.1 利用基本控件实现显示学生信息 257
8.12.2 为TextBox控件添加列表选择框 259
8.13 小结 260
8.14 实战练习 260
第9章 常用ActiveX控件 261
视频讲解：95分钟
9.1 ActiveX控件的使用 262
9.1.1 ActiveX控件概述 262
9.1.2 注册ActiveX控件 262
9.1.3 添加ActiveX控件 264
9.1.4 删除ActiveX控件 264
9.2 图像列表控件（ImageList控件） 265
9.2.1 认识ImageList控件 265
9.2.2 添加图像 265
9.2.3 与其他控件关联 266
9.2.4 创建组合图像 268
9.3 视图控件（ListView控件） 269
9.3.1 认识ListView控件 269
9.3.2 添加数据 270
9.3.3 用ListView控件+数据表创建报表视图 271
9.3.4 用ListView控件创建大图标视图 272
9.4 树状控件（TreeView控件） 273
9.4.1 认识TreeView控件 274
9.4.2 添加数据 274
9.4.3 删除指定节点数据 276
9.4.4 节点展开与折叠 276
9.4.5 用TreeView控件+数据表创建多级树状视图 276
9.5 选项卡控件（SSTab控件） 280
9.5.1 认识SSTab控件 280
9.5.2 设置选项卡数目和行数 281
9.5.3 在选项卡中添加控件 281
9.5.4 运行时启用和停用选项卡 282
9.5.5 定制不同样式的选项卡 282
9.5.6 图形化选项卡 283
9.6 进度条控件（ProgressBar控件） 284
9.6.1 认识ProgressBar控件 284
9.6.2 显示进展情况 284
9.6.3 将Max属性设置为已知的界限 285
9.6.4 隐藏ProgressBar控件 285
9.6.5 用ProgressBar控件显示清空数据的进度 285
9.7 日期/时间控件（DateTimePicker控件） 286
9.7.1 认识DateTimePicker控件 286
9.7.2 设置和返回日期 286
9.7.3 实时读取DTPicker控件中的日期 287
9.7.4 使用CheckBox属性选择无日期 287
9.7.5 使用日期和时间的格式 288
9.7.6 使用DTPicker控件计算日期或天数 289
9.8 实战 290
9.8.1 用TreeView控件制作程序主界面 290
9.8.2 利用ListView控件浏览数据 291
9.9 小结 293
9.10 实战练习 294
第10章 菜单、工具栏和状态栏 295
视频讲解：128分钟
10.1 菜单概述 296
10.1.1 菜单的概念 296
10.1.2 菜单的组成 296
10.1.3 菜单的状态 297
10.1.4 菜单编辑器 297
10.2 标准菜单 299
10.2.1 最简菜单 299
10.2.2 菜单无效状态 300
10.2.3 级联菜单 301
10.2.4 菜单分割条 301
10.2.5 复选菜单 302
10.2.6 菜单的快捷键和访问键 303
10.2.7 创建菜单数组 304
10.2.8 修饰菜单 305
10.2.9 为菜单事件添加代码 305
10.3 弹出式菜单 306
10.3.1 弹出式菜单概述 306
10.3.2 PopupMenu方法 306
10.3.3 弹出式菜单的设计和调用 307
10.3.4 利用弹出式菜单为无标题栏窗体添加菜单 308
10.4 菜单的编程 310
10.4.1 菜单的多列显示 310
10.4.2 可伸缩的菜单项 312
10.4.3 为菜单添加图标 313
10.4.4 菜单复制器 314
10.5 工具栏设计 318
10.5.1 工具栏概述 318
10.5.2 利用Toolbar控件创建最简工具栏 318
10.5.3 为工具栏按钮添加图片 319
10.5.4 为工具栏按钮设置分组 320
10.5.5 为工具栏添加下拉菜单 321
10.5.6 给工具栏按钮添加事件处理代码 322
10.6 状态栏设计 323
10.6.1 状态栏概述 323
10.6.2 利用状态栏显示操作员信息 324
10.6.3 利用状态栏显示日期、时间 324
10.6.4 利用状态栏显示鼠标位置 325
10.7 实战 326
10.7.1 改变菜单的颜色 326
10.7.2 托盘上的弹出式菜单 326
10.7.3 向工具栏中添加ComboBox控件 327
10.7.4 在状态栏中显示窗体信息 328
10.8 小结 329
10.9 实战练习 329
第11章 对话框 331
视频讲解：47分钟
11.1 输入对话框 332
11.2 消息对话框 333
11.3 公用对话框 335
11.3.1 公用对话框概述 335
11.3.2 “打开”对话框 337
11.3.3 “另存为”对话框 338
11.3.4 “颜色”对话框 339
11.3.5 “字体”对话框 340
11.3.6 “打印”对话框 341
11.3.7 “帮助”对话框 341
11.4 实战 342
11.4.1 使用“打开”对话框打开图片 342
11.4.2 读取并保存INI文件 343
11.4.3 使用“颜色”对话框设置文字颜色 344
11.5 小结 345
11.6 实战练习 345
第12章 文件系统编程 347
视频讲解：115分钟
12.1 文件的基本概念 348
12.1.1 文件的一般结构 348
12.1.2 文件的分类 348
12.1.3 文件的访问方式 349
12.2 顺序文件 350
12.2.1 打开顺序文件 350
12.2.2 关闭顺序文件 351
12.2.3 读取顺序文件 351
12.2.4 写入顺序文件 354
12.3 随机文件 356
12.3.1 随机文件的特点 356
12.3.2 打开随机文件 357
12.3.3 关闭随机文件 357
12.3.4 读取随机文件 357
12.3.5 写入随机文件 358
12.4 二进制文件 359
12.4.1 打开二进制文件 359
12.4.2 二进制文件的关闭 360
12.4.3 二进制文件的读取与写入操作 360
12.5 文件操作函数 361
12.5.1 利用CurDir函数获取路径 361
12.5.2 利用FileLen函数返回文件长度 362
12.5.3 利用EOF函数测试文件结束状态 362
12.5.4 利用LOF函数获取打开文件的大小 363
12.5.5 利用GetAttr函数获取文件属性 363
12.5.6 利用FileDateTime函数获取文件创建或修改时间 364
12.6 文件操作语句 364
12.6.1 利用FileCopy语句复制文件 364
12.6.2 利用Name语句重命名文件 365
12.6.3 利用Kill语句删除文件 366
12.6.4 利用ChDrive语句改变当前驱动器 367
12.6.5 利用ChDir语句改变目录或文件夹 368
12.6.6 利用MkDir语句创建目录或文件夹 368
12.6.7 利用SetAttr语句设置文件属性 368
12.7 文件系统控件 369
12.7.1 驱动器列表框（DriveListBox控件） 369
12.7.2 目录列表框（DirListBox控件） 371
12.7.3 文件列表框（FileListBox控件） 372
12.7.4 利用文件系统控件读取文件 376
12.8 实战 377
12.8.1 批量移动文件 377
12.8.2 文件及文件夹名提取器 378
12.8.3 文档编辑器 381
12.9 小结 386
12.10 实战练习 386
第13章 图形图像技术 387
视频讲解：89分钟
13.1 坐标系统 388
13.1.1 默认的坐标系统 388
13.1.2 自定义的坐标系统 388
13.2 图形图像中的颜色 390
13.2.1 QBColor函数 390
13.2.2 RGB函数 391
13.3 图形处理控件 391
13.3.1 Line控件 391
13.3.2 利用Line控件设计分割线 392
13.3.3 Shape控件 393
13.4 图像处理控件 394
13.4.1 Image控件 394
13.4.2 利用Image控件制作小动画 395
13.4.3 PictureBox控件 395
13.4.4 利用PictureBox控件浏览大幅图片 396
13.5 图形属性 397
13.5.1 使用CurrentX和CurrentY属性绘图坐标 397
13.5.2 使用BackColor和ForeColor属性设置背景色和前景色 399
13.5.3 使用FillColor和FillStyle属性设置填充效果 400
13.5.4 使用DrawWidth、DrawStyle和DrawMode属性设置绘制效果 401
13.5.5 使用BorderStyle、BorderWidth和BorderColor属性设置图形的边框效果 404
13.6 图形方法 405
13.6.1 使用Cls方法清屏 405
13.6.2 使用PSet方法画点 406
13.6.3 使用Point方法获取颜色值 406
13.6.4 使用Line方法画线 407
13.6.5 使用Circle方法画圆 408
13.6.6 使用PaintPicture方法绘制图形 410
13.7 图形方法应用实例 411
13.7.1 绘制矩形 411
13.7.2 绘制彩色圆饼 412
13.7.3 绘制抛物线 412
13.8 图像处理函数 413
13.8.1 使用LoadPicture函数加载图像 413
13.8.2 使用SavePicture函数保存图片 414
13.9 实战 415
13.9.1 利用图片实现电影胶片的效果 415
13.9.2 万花筒 416
13.9.3 屏幕放大镜 418
13.10 小结 421
13.11 实战练习 422
第14章 多媒体技术 423
视频讲解：50分钟
14.1 MMControl控件 424
14.1.1 认识MMControl控件 424
14.1.2 MMControl控件的属性 424
14.1.3 MMControl控件的事件 429
14.2 MediaPlay控件 430
14.2.1 认识MediaPlay控件 430
14.2.2 MediaPlay控件的属性 430
14.2.3 MediaPlay控件的方法 431
14.3 ShockwaveFlash控件 431
14.3.1 认识ShockwaveFlash控件 432
14.3.2 ShockwaveFlash控件的属性 432
14.3.3 ShockwaveFlash控件的方法 433
14.3.4 ShockwaveFlash控件的事件 433
14.4 Animation控件 434
14.4.1 认识Animation控件 434
14.4.2 Animation控件的属性 435
14.4.3 Animation控件的方法 435
14.5 DirectX 436
14.5.1 下载和安装DirectX 436
14.5.2 在VB中使用DirectX 437
14.5.3 利用DirectSound编程实现实时混音 437
14.6 实战 440
14.6.1 CD播放器 440
14.6.2 VCD播放器 441
14.6.3 多媒体演示程序 443
14.7 小结 444
14.8 实战练习 444
第15章 鼠标键盘处理 445
视频讲解：52分钟
15.1 鼠标指针的设置 446
15.1.1 设置鼠标指针形状 446
15.1.2 设置鼠标为指定的图片 447
15.1.3 设置鼠标为指定的动画 448
15.1.4 设置窗体的鼠标样式 449
15.1.5 设置系统的鼠标样式 451
15.2 鼠标事件的响应 454
15.2.1 鼠标单击和双击事件（Click和DbClick事件） 454
15.2.2 鼠标按下和抬起（MouseDown和MouseUp事件） 455
15.2.3 鼠标移动事件（MouseMove事件） 456
15.3 拖放操作 457
15.3.1 与拖放相关的属性（DragMode和DragIcon属性） 457
15.3.2 与拖放相关的事件（DragDrop和DragOver事件） 458
15.3.3 与拖放相关的方法（Move和Drag方法） 460
15.4 键盘事件的响应 462
15.4.1 KeyDown事件和KeyUp事件的使用 462
15.4.2 KeyPress事件的使用 464
15.5 实战 464
15.5.1 交换鼠标左右键 464
15.5.2 鼠标跟随 465
15.5.3 为程序设置热键 467
15.6 小结 468
15.7 实战练习 468
第16章 数据库开发技术 469
视频讲解：94分钟
16.1 VB访问数据库 470
16.2 ODBC 470
16.2.1 认识ODBC 470
16.2.2 配置ODBC数据源 471
16.3 Data控件 473
16.3.1 认识Data控件 473
16.3.2 用Data控件连接数据库 473
16.3.3 Data控件的综合应用 474
16.4 DAO对象 475
16.4.1 引用DAO对象 475
16.4.2 DAO对象的子对象 476
16.4.3 DAO对象的综合应用 480
16.5 ADO控件 483
16.5.1 认识ADO控件 484
16.5.2 用ADO控件连接各种数据源 484
16.5.3 用ADO控件连接记录源 486
16.5.4 ADO控件常用属性、方法和事件 486
16.5.5 ADO控件的综合应用 487
16.6 ADO对象 488
16.6.1 引用ADO对象 488
16.6.2 ADO对象的子对象 489
16.6.3 连接多种数据库（Connection对象） 490
16.6.4 连接记录源（Recordset对象） 491
16.6.5 执行SQL语句（Command对象） 493
16.6.6 ADO对象的综合应用 494
16.7 RDO控件（远程数据控件） 495
16.7.1 引用RDO控件到工程中 495
16.7.2 RDO控件与数据访问相关的属性 496
16.7.3 使用RDO控件连接远程数据库 497
16.8 数据库增、删、改、查技巧 498
16.8.1 存取字段数据的几种方法 498
16.8.2 使用数据绑定控件实现增、删、改 499
16.8.3 非绑定控件的增、删、改 500
16.8.4 使用ADO对象实现增、删、改 500
16.9 实战 502
16.9.1 获取SQL Server服务器中的所有数据库 502
16.9.2 使用Openschema方法读取数据库结构 503
16.10 小结 504
16.11 实战练习 504
第17章 数据库控件 505
视频讲解：70分钟
17.1 DBCombo和DBList控件 506
17.2 DataCombo和DataList控件 507
17.2.1 认识DataCombo和DataList控件 507
17.2.2 DataCombo和DataList控件的属性 507
17.2.3 显示关系表中的数据 508
17.3 DataGrid控件 509
17.3.1 认识DataGrid控件 510
17.3.2 用DataGrid控件显示数据 510
17.3.3 格式化数据 512
17.3.4 锁定数据 512
17.3.5 将DataGrid控件中的数据显示在文本框中 513
17.4 MSFlexGrid和MSHFlexGrid控件 513
17.4.1 认识MSHFlexGrid控件 514
17.4.2 用MSHFlexGrid控件显示数据 514
17.4.3 数据排序与合并 516
17.4.4 隐藏行或列 517
17.4.5 冻结字段 518
17.5 实战 518
17.5.1 加载企业部门名称 518
17.5.2 驾驶员档案查询 521
17.5.3 结账统计报表 522
17.6 小结 526
17.7 实战练习 526
第18章 数据环境设计器及报表生成 527
视频讲解：110分钟
18.1 添加数据环境对象 528
18.2 Connection对象 529
18.2.1 添加Connection对象 529
18.2.2 连接Connection对象 529
18.3 Command对象 531
18.3.1 创建Command对象 531
18.3.2 Command对象的层次结构 533
18.3.3 字段映射 538
18.4 DataReport报表 539
18.4.1 在工程中添加数据报表设计器 539
18.4.2 数据报表设计器简介 539
18.4.3 DataReport对象的属性和方法 540
18.4.4 设计简单的报表 541
18.5 实战 543
18.5.1 创建数据窗体 543
18.5.2 添加、删除和修改记录 544
18.5.3 向报表中添加日期、时间及页码 546
18.5.4 主明细报表 547
18.5.5 分组统计 550
18.6 小结 551
18.7 实战练习 551
第19章 程序调试和错误处理 553
视频讲解：30分钟
19.1 常见错误 554
19.1.1 编译时错误 554
19.1.2 运行时错误 554
19.1.3 逻辑错误 554
19.2 VB的调试工具 555
19.2.1 设置自动语法检查 555
19.2.2 利用VB的调试工具栏 556
19.3 工作模式 557
19.3.1 设计模式 557
19.3.2 运行模式 557
19.3.3 中断模式 557
19.4 调试方法 558
19.4.1 控制程序的执行 558
19.4.2 设置断点 558
19.4.3 使用立即窗口 559
19.4.4 使用本地窗口 559
19.4.5 使用监视窗口 560
19.5 错误处理语句和对象 561
19.5.1 Err对象 561
19.5.2 捕获错误（On Error语句） 562
19.5.3 退出错误处理（Resume语句） 562
19.5.4 编写错误处理函数 563
19.6 常见错误的处理 564
19.6.1 解决使用SetFocus方法时“无效的过程调用或参数”错误 564
19.6.2 处理“对象变量或With块变量未设置”错误 564
19.6.3 解决“找不到工程和库”错误 564
19.6.4 解决没有启动窗体错误 564
19.6.5 解决数组声明时“要求常量表达式”错误 565
19.7 小结 566
第3部分 项目实战
第20章 企业人事管理系统 569
视频讲解：248分钟
20.1 需求分析 570
20.2 系统设计 570
20.2.1 系统目标 570
20.2.2 系统功能结构 570
20.2.3 系统预览 571
20.3 数据库设计 572
20.3.1 数据库概要说明 572
20.3.2 数据库概念结构设计 573
20.3.3 数据库逻辑结构设计 575
20.3.4 触发器的创建 577
20.3.5 自动计算列的创建 580
20.4 公共模块设计 581
20.5 主窗体设计 582
20.5.1 主窗体概述 582
20.5.2 技术分析 583
20.5.3 MDI主窗体实现过程 584
20.5.4 菜单实现过程 585
20.5.5 工具栏实现过程 586
20.5.6 背景图窗体自适应 587
20.6 添加员工信息模块设计 588
20.6.1 添加员工信息模块概述 588
20.6.2 技术分析 588
20.6.3 添加员工信息模块的窗体设计 592
20.6.4 使“编号”文本框获得焦点 592
20.6.5 初始化列表项 593
20.6.6 控件焦点的自动转移 594
20.6.7 选择员工照片 595
20.6.8 添加/修改员工信息 595
20.7 添加/修改部门信息模块设计 597
20.7.1 添加/修改部门信息模块概述 597
20.7.2 技术分析 598
20.7.3 添加/修改部门信息模块的窗体设计 599
20.7.4 添加/修改部门信息模块的初始化 600
20.7.5 添加或修改部门信息 600
20.8 添加/修改出勤模块设计 601
20.8.1 添加/修改出勤模块概述 601
20.8.2 技术分析 602
20.8.3 添加/修改出勤模块的窗体设计 603
20.8.4 选择员工 604
20.8.5 添加/修改出勤 608
20.9 员工公出/请假模块设计 612
20.9.1 员工公出/请假模块概述 612
20.9.2 员工公出/请假模块窗体设计 612
20.9.3 技术分析 613
20.9.4 添加或修改员工公出/请假模块实现过程 614
20.9.5 员工公出/请假模块实现过程 615
20.10 工资信息管理模块设计 618
20.10.1 工资信息管理模块概述 618
20.10.2 技术分析 618
20.10.3 工资信息管理模块的窗体设计 620
20.10.4 选择工资月份 621
20.10.5 查询工资信息 622
20.10.6 工资信息导为Excel表 623
20.10.7 修改工资信息 623
20.10.8 批量修改工资信息 624
20.10.9 过期工资处理 624
20.11 文件清单 625
20.12 小结 626
第21章 叶子图像处理专家 627
视频讲解：96分钟
21.1 需求分析 628
21.2 系统设计 628
21.2.1 系统目标 628
21.2.2 系统功能结构 628
21.3 系统运行环境 629
21.4 创建项目 629
21.5 启动窗体的设计 629
21.5.1 设计窗体界面 630
21.5.2 添加资源文件 631
21.5.3 代码注册Flash控件 632
21.5.4 调用Flash动画 632
21.6 主窗体设计 633
21.6.1 设计窗体界面 634
21.6.2 设计菜单栏 634
21.6.3 设计状态栏 636
21.6.4 窗体初始化 637
21.6.5 工具栏调用系统功能 637
21.6.6 打开图片 639
21.6.7 显示历史图片 640
21.6.8 撤销/重复执行 641
21.6.9 浏览大幅图片 643
21.7 图像旋转 644
21.7.1 图像旋转窗体的设计 645
21.7.2 使用二次插值法缩放图片 645
21.7.3 设置旋转角度 648
21.8 图像的剪切与合成 650
21.8.1 设计图像合成窗体 650
21.8.2 利用资源文件加载剪切鼠标 651
21.8.3 图像的剪切 651
21.8.4 选择合成方式 652
21.8.5 设置合成图片的坐标位置 653
21.8.6 图像的合成 653
21.9 设置图片大小 653
21.9.1 窗体界面设计 654
21.9.2 锁定纵横比率 654
21.9.3 调整图片的大小 655
21.10 “滤镜”窗体的设计 656
21.10.1 设计“滤镜”窗体界面 656
21.10.2 选择滤镜 657
21.10.3 图片预览 659
21.10.4 应用到主窗体图片上 659
21.11 滤镜算法 660
21.11.1 图像锐化算法 660
21.11.2 图像柔化算法 661
21.11.3 图像浮雕算法 662
21.11.4 图像扩散算法 663
21.11.5 图像轮廓算法 665
21.11.6 图像饱和度算法 666
21.11.7 图像亮度算法 667
21.12 运行项目 669
21.13 程序打包 670
21.14 开发常见问题与解决 670
21.14.1 图像框中不显示输出图像 670
21.14.2 Win32系统错误处理 671
21.15 小结 671
第22章 个人文档管理系统 673
视频讲解：9分钟
22.1 需求分析 674
22.2 系统设计 674
22.2.1 系统功能结构 674
22.2.2 系统预览 674
22.2.3 业务流程图 675
22.3 系统运行环境 676
22.4 数据库设计 676
22.4.1 数据库概要说明 676
22.4.2 数据库概念设计 677
22.4.3 主要数据表结构 677
22.5 数据模块设计 679
22.6 主窗体界面设计 679
22.7 文档类别管理 680
22.8 文档信息添加 680
22.9 文档信息查询 681
22.10 文档信息打印 681
22.11 小结 682
第23章 无纸化考试系统 683
视频讲解：11分钟
23.1 需求分析 684
23.2 系统分析 684
23.2.1 需求分析 684
23.2.2 可行性分析 684
23.3 系统设计 684
23.3.1 系统目标 684
23.3.2 系统功能结构 685
23.3.3 系统预览 685
23.3.4 业务流程图 687
23.4 系统运行环境 687
23.5 数据库设计 687
23.5.1 数据库概要说明 687
23.5.2 数据库概念设计 688
23.5.3 数据库逻辑设计 689
23.6 公共模块设计 691
23.7 系统登录模块设计 693
23.7.1 系统登录模块概述 693
23.7.2 系统登录技术分析 693
23.8 主窗体设计 694
23.8.1 主窗体模块概述 694
23.8.2 主窗体模块技术分析 695
23.9 考试窗体设计 695
23.9.1 考试窗体模块概述 695
23.9.2 考试窗体技术分析 696
23.10 后台管理员窗体设计 697
23.10.1 管理窗体模块概述 697
23.10.2 管理窗体技术分析 698
23.11 修改试题窗体设计 699
23.11.1 修改试题窗体概述 699
23.11.2 修改试题窗体技术分析 699
23.12 开发技巧与难点分析 700
23.13 小结 701
第24章 局域网聊天系统 703
视频讲解：7分钟
24.1 需求分析 704
24.2 系统设计 704
24.2.1 系统目标 704
24.2.2 系统功能结构 704
24.2.3 系统预览 705
24.2.4 业务流程图 706
24.3 数据库设计 706
24.3.1 数据库概要说明 706
24.3.2 数据库概念设计 706
24.3.3 数据库逻辑设计 707
24.3.4 触发器的创建 708
24.4 公共模块 711
24.5 主窗体 714
24.6 系统登录模块设计 714
24.7 通话模块 714
24.8 添加好友模块 715
24.9 好友分组模块 715
24.10 系统服务器 716
24.11 开发技巧与难点分析 716
24.11.1 窗体透明 716
24.11.2 Flash透明 718
24.11.3 系统托盘及其应用 719
24.12 小结 719
附录A 代码编写规则 721
附录B VB内部函数 725