第1篇 基础知识 2
第1章 Visual Basic集成开发环境 2
1.1 Visual Basic简介 3
1.1.1 Visual Basic概述 3
1.1.2 Visual Basic 6.0的特点 3
1.1.3 Visual Basic 6.0的局限性 4
1.2学习Visual Basic的好处 4
1.2.1 Visual Basic可以做什么 4
1.2.2学习Visual Basic的几点建议 5
1.3 Visual Basic开发环境的安装和程序启动 5
1.3.1 Visual Basic 6.0的运行环境 5
1.3.2 Visual Basic 6.0+SP6的安装 6
1.3.3 Visual Basic 6.0的启动 7
1.4 Visual Basic 6.0的集成开发环境 9
1.4.1集成开发环境简介 9
1.4.2菜单栏 9
1.4.3工具栏 11
1.4.4工具箱 12
1.4.5工程资源管理器 14
1.4.6属性窗口 15
1.4.7窗体布局窗口 15
1.4.8窗体设计器 16
1.4.9代码编辑窗口 16
1.5 Visual Basic的MDI和SDI开发环境 16
1.5.1多文档界面开发环境 16
1.5.2单文档界面开发环境 17
1.6开发环境使用技巧 17
1.6.1设置启动时保存 17
1.6.2自定义工具栏 18
1.6.3为代码编辑器设置鼠标滚动 19
1.6.4设置网格大小和不对齐到网格 20
1.6.5设置在编辑器中要求变量声明 20
1.6.6规范代码缩进格式 21
1.7 Visual Basic 6.0的帮助系统 21
1.7.1 MSDN Library的安装与使用 21
1.7.2利用附带的实例源程序学习编程 22
1.7.3使用Visual Basic的帮助菜单 23
1.8创建第一个VB程序 24
1.8.1创建工程文件 24
1.8.2设计界面 24
1.8.3编写代码 24
1.8.4调试运行 25
1.8.5保存工程 25
1.8.6编译程序 26
1.9利用应用程序向导自动生成应用程序 26
1.10实战 29
1.10.1设置控件大小一致 29
1.10.2创建或打开新工程 30
1.10.3添加ActiveX控件 31
1.10.4显示文字 31
1.10.5加法计算器 32
1.11小结 32
1.12学习成果检验 33
第2章 VB语言基础 34
2.1关键字和标识符 35
2.2基本数据类型 35
2.2.1字符型 36
2.2.2数值型 37
2.2.3布尔型 38
2.2.4日期型 38
2.2.5变体型 38
2.2.6对象型 39
2.3记录类型 39
2.4枚举类型 40
2.5变量 41
2.5.1什么是变量 41
2.5.2变量的命名 41
2.5.3变量的声明 42
2.6变量的作用域 43
2.6.1静态变量 44
2.6.2变量同名问题的处理 45
2.7常量 45
2.7.1常量的声明 45
2.7.2局部常量和全局常量 46
2.8运算符 46
2.9表达式 47
2.9.1什么是表达式 48
2.9.2表达式的种类 48
2.9.3运算符在表达式中的优先级 49
2.10语言基础应用技巧 50
2.10.1如何处理溢出 50
2.10.2正确使用“&”和“+”, 50
2.10.3正确使用Or、 Xor、 And、 Eqv、 Imp运算符 51
2.11实战 52
2.11.1判断输错口令次数 52
2.11.2欢迎窗体 52
2.11.3计算圆的面积 53
2.11.4日期提醒程序 53
2.11.5袖珍计算器 54
2.12小结 55
2.13学习成果检验 55
第3章 算法和程序控制结构 56
3.1算法 57
3.1.1什么是算法 57
3.1.2算法的特性 58
3.1.3算法的描述方法 58
3.1.4构成算法的基本控制结构 60
3.2顺序结构 62
3.2.1赋值语句 62
3.2.2数据的输入 63
3.2.3数据的输出 64
3.3选择结构 65
3.3.1单分支If…Then语句 66
3.3.2双分支If…Then…Else语句 67
3.3.3 If语句的嵌套 68
3.3.4多分支If…Then…ElseIf语句 70
3.3.5 Select Case语句 72
3.3.6 IIf函数 74
3.4循环结构 75
3.4.1 For…Next循环语句 75
3.4.2 For Each…Next循环语句 77
3.4.3 Do…Loop循环语句 77
3.4.4多重循环 80
3.4.5选择结构与循环结构的嵌套 81
3.5其他辅助控制语句 82
3.5.1跳转语句GoTo 82
3.5.2复用语句With…End With 83
3.5.3退出语句Exit 83
3.5.4结束语句End 84
3.6实战 85
3.6.1计算最大公约数和最小公倍数 85
3.6.2判断素数 86
3.6.3验证哥德巴赫猜想 87
3.6.4用For…Next语句求解整数n的阶乘 88
3.6.5用Print语句打印工资数据 88
3.7小结 89
3.8学习成果检验 89
第4章 数组与集合 90
4.1数组概述 91
4.1.1数组的概念 91
4.1.2数组与简单变量的区别 91
4.1.3数组的分类 91
4.2静态数组 92
4.2.1静态数组的声明和使用 92
4.2.2一维数组 93
4.2.3二维数组 94
4.2.4多维数组 95
4.3动态数组 95
4.3.1动态数组的声明 96
4.3.2动态数组的使用 96
4.3.3数组的清除 97
4.4控件数组 97
4.4.1控件数组的概念 97
4.4.2控件数组的创建 97
4.4.3控件数组的使用 98
4.4.4加载和删除控件数组中的控件 99
4.5数组相关函数及语句 100
4.5.1使用Array函数创建数组 100
4.5.2使用UBound和LBound函数获取数组上下标 100
4.5.3使用Split函数生成一维字符串数组 101
4.5.4使用Option Base语句声明数组下标最大值 102
4.6集合 102
4.6.1集合的创建 102
4.6.2控件集合(Controls集合) 103
4.7实战 105
4.7.1动态添加和删除控件 105
4.7.2利用数组实现随机抽取幸运观众 107
4.7.3利用二维数组向网格控件中添加背景图片 108
4.7.4统计文字段落数 109
4.7.5成绩排名 110
4.8小结 111
4.9学习成果检验 111
第5章 过程 112
5.1认识过程 113
5.2事件过程 113
5.2.1建立事件过程 113
5.2.2调用事件过程 114
5.3子过程(Sub过程) 114
5.3.1建立子过程 115
5.3.2调用子过程 116
5.3.3调用其他模块中的子过程 117
5.4函数过程(Function过程) 117
5.4.1建立函数过程 117
5.4.2调用函数过程 118
5.4.3函数过程与子过程的区别 118
5.5参数的传递 118
5.5.1认识参数 119
5.5.2参数按值和按地址传递 120
5.5.3数组参数 121
5.5.4对象参数 122
5.6嵌套过程 122
5.7递归过程 123
5.8属性过程(Property过程) 124
5.8.1使用属性过程建立类的属性 124
5.8.2使用类属性 126
5.8.3只读属性和对象属性 126
5.9工程中的模块 126
5.9.1窗体模块 126
5.9.2标准模块 127
5.9.3类模块 128
5.9.4标准模块与类模块的区别 128
5.10过程的作用域 129
5.11实战 131
5.11.1编写计算圆面积的函数过程 131
5.11.2自定义二进制转换为十进制的函数 131
5.11.3利用递归实现求最大公约数 132
5.11.4计算水果的加权平均值 132
5.11.5判断闰年 133
5.12小结 134
5.13学习成果检验 134
第6章 内置函数 135
6.1字符串函数 136
6.1.1获取字符长度(Len函数) 136
6.1.2取左(右)面指定个数的字符(Len和Right函数) 136
6.1.3截取字符串(Mid函数) 137
6.1.4获取字符出现的位置(InStr和InStrRev函数) 138
6.1.5去除空格(Trim、 RTrim、 LTrim函数) 140
6.1.6将字符串转换为大(小)写(UCase和LCase函数) 141
6.2数学函数 142
6.2.1求绝对值(Abs函数) 142
6.2.2求平方根(Sqr函数) 142
6.2.3 e的n次方(Exp函数) 143
6.2.4求自然对数(Log函数) 144
6.2.5返回符号(Sgn函数) 144
6.2.6取整(Int和Fix函数) 145
6.3判断函数 146
6.3.1判断是否为数组(IsArray函数) 146
6.3.2判断是否为Null (IsNull函数) 146
6.3.3判断是否为数字(IsNumeric函数) 147
6.4类型转换函数 147
6.4.1转换为字符型(Str函数) 147
6.4.2转换为数值型(Val函数) 148
6.4.3转换为ASCII (Asc函数) 149
6.4.4转换为字符(Chr函数) 149
6.5日期和时间函数 150
6.5.1 Date、Now和Time函数 150
6.5.2 Weekday函数 150
6.5.3返回年、月、日(Year、 Month、 Day函数) 152
6.5.4返回时、分、秒(Hour、 Minute、 Second函数) 152
6.6随机函数 153
6.6.1初始化随机数(Randomize函数) 153
6.6.2生成随机数(Rnd函数) 153
6.7格式化函数 154
6.8实战 156
6.8.1判断某个时间段里有多少个工作日 156
6.8.2数字时钟 157
6.8.3计算器 159
6.8.4幸运抽奖 159
6.8.5猜数字 161
6.9小结 163
6.10学习成果检验 163
第7章 综合实验(一)——万年历模块 164
7.1万年历模块概述 165
7.1.1模块概述 165
7.1.2程序预览 165
7.2关键技术 165
7.2.1日历显示控件排列算法 165
7.2.2阳历转换到阴历算法 166
7.2.3阴历转换到阳历算法 168
7.2.4 SendMessage函数实现移动窗体 169
7.3实现过程 169
7.4小结 174
7.5学习成果检验 174
第2篇 基本控件 177
第8章 窗体和系统对象 177
8.1窗体概述 177
8.1.1窗体的结构 177
8.1.2模式窗体和无模式窗体 177
8.1.3 SDI窗体和MDI窗体 178
8.2窗体的属性 178
8.2.1名称(Name属性) 178
8.2.2标题(Caption属性) 179
8.2.3图标(Icon属性) 179
8.2.4背景(Picture属性) 180
8.2.5边框样式(BorderStyle属性) 181
8.3窗体的事件 182
8.3.1单击和双击(Click/DblClick事件) 182
8.3.2载入和卸载(Load/Query Unload/Unload事件) 182
8.3.3初始化(Initialize事件) 184
8.3.4活动性(Activate/Deactivate事件) 184
8.3.5焦点事件(GotFocus/LostFocus事件) 185
8.3.6重绘(Paint事件) 186
8.3.7调整大小(Resize事件) 187
8.4窗体事件的生命周期 187
8.5窗体的方法 189
8.5.1加载窗体(Load方法) 189
8.5.2卸载窗体(Unload方法) 189
8.5.3显示窗体(Show方法) 190
8.5.4隐藏窗体(Hide方法) 191
8.5.5移动窗体(Move方法) 191
8.5.6清除窗体(Cls方法) 192
8.5.7在窗体上显示文本(Print方法) 192
8.5.8打印窗体(PrintForm方法) 193
8.6 MDI窗体 194
8.6.1 MDI窗体概述 194
8.6.2 MDI窗体的创建 194
8.6.3在MDI窗体中添加控件 195
8.6.4 MDI子窗体(MDIChild属性) 196
8.6.5 MDI窗体的特点 197
8.7窗体应用技巧 197
8.7.1如何设置闪烁的窗体标题栏 198
8.7.2如何设置窗体前置 198
8.7.3如何拖动无标题栏窗体移动 199
8.8系统对象 200
8.8.1应用程序对象(App对象) 200
8.8.2屏幕对象(Screen对象) 203
8.8.3剪贴板对象(Clipboard对象) 204
8.8.4调试对象(Debug对象) 205
8.9实战 207
8.9.1在窗口中平铺图片 207
8.9.2透明窗体 207
8.9.3利用App对象防止程序重复 209
8.9.4利用Screen对象获得系统中的可用字体 209
8.9.5记录剪贴板内容 210
8.10小结 211
8.11学习成果检验 211
第9章 常用标准控件 212
9.1控件概述 213
9.1.1控件的作用 213
9.1.2控件的分类 213
9.1.3控件的命名 214
9.1.4控件的属性、方法和事件 214
9.2控件的相关操作 215
9.2.1向窗体上添加控件 215
9.2.2设置控件大小和位置 215
9.2.3复制控件 215
9.2.4删除控件 216
9.2.5锁定控件 216
9.2.6使用窗体编辑器调整控件布局 216
9.3界面设计的基本原则 217
9.4标签控件(Label控件) 219
9.4.1标签控件概述 219
9.4.2标签控件的常用属性 219
9.4.3利用标签控件实现鼠标交互效果 220
9.5文本框控件(TextBox控件) 220
9.5.1文本框控件概述 220
9.5.2文本框控件的常用属性、方法和事件 220
9.5.3利用文本框控件实现用户登录 223
9.6命令按钮控件(Command Button控件) 224
9.6.1命令按钮概述 224
9.6.2命令按钮的常用属性和事件 224
9.6.3利用命令按钮实现加载图片的功能 225
9.7单选按钮、复选框及框架 226
9.7.1单选按钮(OptionButton控件) 226
9.7.2复选框(CheckBox控件) 227
9.7.3框架(Frame控件) 228
9.7.4设置字体显示效果 228
9.8列表框控件(ListBox控件) 229
9.8.1列表框控件概述 229
9.8.2列表框控件的常用属性、方法和事件 229
9.8.3随机抽取列表框中数据 233
9.9组合框控件(ComboBox控件) 233
9.9.1组合框控件概述 233
9.9.2组合框控件的常用属性 233
9.9.3改变ComboBox控件下拉列表框的长度 235
9.10滚动条控件(HScrollBar和VScrollBar控件) 236
9.10.1滚动条控件概述 236
9.10.2滚动条控件的属性和事件 236
9.10.3利用滚动条浏览大幅图片 237
9.11时钟控件(Timer控件) 238
9.11.1 Timer控件的属性和事件 238
9.11.2利用Timer控件设计小游戏 238
9.12实战 240
9.12.1利用基本控件实现显示学生信息 240
9.12.2为TextBox控件添加列表选择框 241
9.12.3赛马游戏 242
9.12.4掷骰子 243
9.12.5贪吃蛇 246
9.13小结 248
9.14学习成果检验 248
第10章 常用ActiveX控件 249
10.1 ActiveX控件的使用 250
10.1.1 ActiveX控件概述 250
10.1.2注册ActiveX控件 250
10.1.3添加ActiveX控件 251
10.1.4删除ActiveX控件 252
10.2图像列表控件(ImageList控件) 252
10.2.1认识ImageList控件 252
10.2.2添加图像 253
10.2.3与其他控件关联 254
10.2.4创建组合图像 256
10.3视图控件(ListView控件) 256
10.3.1认识ListView控件 256
10.3.2添加数据 257
10.3.3用ListView控件+数据表创建报表视图 257
10.3.4用ListView控件创建大图标视图 259
10.4树状控件(TreeView控件) 260
10.4.1认识TreeView控件 260
10.4.2添加数据 260
10.4.3删除指定节点数据 262
10.4.4节点展开与折叠 262
10.4.5用TreeView控件+数据表创建多级树状视图 263
10.5选项卡控件(SSTab控件) 265
10.5.1认识SSTab控件 266
10.5.2设置选项卡数目和行数 266
10.5.3在选项卡中添加控件 266
10.5.4运行时启用和停用选项卡 267
10.5.5定制不同样式的选项卡 267
10.5.6图形化选项卡 268
10.6进度条控件(ProgressBar控件) 269
10.6.1认识ProgressBar控件 269
10.6.2显示进展情况 269
10.6.3将Max属性设置为已知的界限 269
10.6.4隐藏ProgressBar控件 270
10.6.5用ProgressBar控件显示清空数据的进度 270
10.7日期/时间控件(DateTimePicker控件) 271
10.7.1认识DateTimePicker控件 271
10.7.2设置和返回日期 271
10.7.3实时读取DTPicker控件中的日期 272
10.7.4使用CheckBox属性选择无日期 272
10.7.5使用日期和时间的格式 272
10.7.6使用DTPicker控件计算日期或天数 273
10.8实战 274
10.8.1使用MaskEdBox控件限制日期输入格式 274
10.8.2进度条循环滚动 275
10.8.3企业部门信息查询导航栏 276
10.8.4保质期计算器 276
10.8.5制作带有图标的客户管理系统导航栏 277
10.9小结 278
10.10学习成果检验 278
第11章 菜单、工具栏和状态栏 279
11.1菜单概述 280
11.1.1菜单的概念 280
11.1.2菜单的组成 280
11.1.3菜单的状态 281
11.1.4菜单编辑器 281
11.2标准菜单 283
11.2.1最简菜单 283
11.2.2菜单无效状态 283
11.2.3级联菜单 284
11.2.4菜单分割条 285
11.2.5复选菜单 285
11.2.6菜单的快捷键和访问键 286
11.2.7创建菜单数组 287
11.2.8修饰菜单 288
11.2.9为菜单事件添加代码 288
11.3弹出式菜单 288
11.3.1弹出式菜单概述 289
11.3.2 PopupMenu方法 289
11.3.3弹出式菜单的设计和调用 289
11.3.4利用弹出式菜单为无标题栏窗体添加菜单 290
11.4菜单的编程 292
11.4.1菜单的多列显示 293
11.4.2可伸缩的菜单项 293
11.4.3为菜单添加图标 295
11.4.4菜单复制器 296
11.5工具栏设计 298
11.5.1工具栏概述 298
11.5.2利用Toolbar控件创建最简工具栏 299
11.5.3为工具栏按钮添加图片 299
11.5.4为工具栏按钮设置分组 300
11.5.5为工具栏添加下拉菜单 301
11.5.6给工具栏按钮添加事件处理代码 302
11.6状态栏设计 303
11.6.1状态栏概述 303
11.6.2利用状态栏显示操作员信息 303
11.6.3利用状态栏显示日期、时间 304
11.6.4利用状态栏显示鼠标位置 304
11.7实战 305
11.7.1改变菜单的颜色 305
11.7.2托盘上的弹出式菜单 305
11.7.3向工具栏中添加ComboBox控件 306
11.7.4在状态栏中显示窗体信息 307
11.7.5保存历史信息的菜单 307
11.8小结 308
11.9学习成果检验 308
第12章 对话框 310
12.1输入对话框 311
12.2消息对话框 312
12.3公用对话框 314
12.3.1公用对话框概述 314
12.3.2“打开”对话框 315
12.3.3“另存为”对话框 316
12.3.4“颜色”对话框 317
12.3.5“字体”对话框 318
12.3.6“打印”对话框 319
12.3.7“帮助”对话框 319
12.4实战 320
12.4.1使用“打开”对话框打开图片 320
12.4.2读取并保存INI文件 320
12.4.3使用“颜色”对话框设置文字颜色 321
12.4.4制作“运行”对话框中的“浏览”对话框 322
12.4.5创建“是否替换文件”对话框 323
12.5小结 324
12.6学习成果检验 324
第13章 综合实验(二)——Word自动化控制模块 325
13.1 Word自动化控制模块概述 326
13.1.1开发背景 326
13.1.2需求分析 326
13.1.3功能结构 326
13.2关键技术 326
13.2.1应用PageSetup对象设置页面 326
13.2.2应用Range\find对象的Execute方法实现查找和替换 327
13.2.3编辑页面提取目录 328
13.2.4应用ShellExecute函数打印Word文档 332
13.2.5应用BuiltInDocumentProperties属性获取文档属性 333
13.3主窗体设计 334
13.3.1功能概述 334
13.3.2 MDI主窗体设计 334
13.3.3在列表中显示Word文件 336
13.3.4文档打印 337
13.3.5文档属性 337
13.4文档设置 339
13.4.1功能概述 339
13.4.2窗体设计 339
13.4.3设置页边距、纸型和页眉/页脚 340
13.5文档修改 341
13.5.1功能概述 341
13.5.2窗体设计 341
13.5.3实现代码 341
13.6文档处理 342
13.6.1功能概述 342
13.6.2窗体设计 343
13.6.3统计、编辑页码并提取目录 343
13.7疑难问题分析与解决 345
13.7.1获取文件属性的字符串 345
13.7.2如何实现目录的提取 346
13.8小结 346
13.9学习成果检验 346
第3篇 高级应用 348
第14章 文件系统编程 348
14.1文件的基本概念 349
14.1.1文件的一般结构 349
14.1.2文件的分类 349
14.1.3文件的访问方式 350
14.2顺序文件 350
14.2.1打开顺序文件 350
14.2.2关闭顺序文件 351
14.2.3读取顺序文件 352
14.2.4写入顺序文件 354
14.3随机文件 356
14.3.1随机文件的特点 356
14.3.2打开随机文件 356
14.3.3关闭随机文件 357
14.3.4读取随机文件 357
14.3.5写入随机文件 357
14.4二进制文件 359
14.4.1打开二进制文件 359
14.4.2二进制文件的关闭 359
14.4.3二进制文件的读取与写入操作 359
14.5文件操作函数 360
14.5.1利用CurDir函数获取路径 360
14.5.2利用FileLen函数返回文件长度 361
14.5.3利用EOF函数测试文件结束状态 361
14.5.4利用LOF函数获取打开文件的大小 362
14.5.5利用GetAttr函数获取文件属性 362
14.5.6利用FileDateTime函数获取文件创建或修改时间 362
14.6文件操作语句 363
14.6.1利用FileCopy语句复制文件 363
14.6.2利用Name语句重命名文件 364
14.6.3利用Kill语句删除文件 364
14.6.4利用ChDrive语句改变当前驱动器 365
14.6.5利用ChDir语句改变目录或文件夹 366
14.6.6利用M1kDir语句创建目录或文件夹 366
14.6.7利用SetAttr语句设置文件属性 366
14.7文件系统控件 367
14.7.1驱动器列表框控件(DriveListBox控件) 367
14.7.2目录列表框控件(DirListBox控件) 368
14.7.3文件列表框控件(FileListBox控件) 370
14.7.4利用文件系统控件读取文件 372
14.8实战 373
14.8.1批量移动文件 373
14.8.2文件及文件夹名提取器 374
14.8.3文档编辑器 376
14.8.4过滤文件中的重要数据 380
14.8.5为顺序文件添加数字编号 381
14.9小结 382
14.10学习成果检验 383
第15章 图形图像技术 384
15.1坐标系统 385
15.1.1默认的坐标系统 385
15.1.2自定义的坐标系统 385
15.2图形、图像中的颜色 386
15.2.1 QBColor函数 387
15.2.2 RGB函数 387
15.3图形处理控件 387
15.3.1 Line控件 388
15.3.2利用Line控件设计分割线 388
15.3.3 Shape控件 389
15.4图像处理控件 389
15.4.1 Image控件 389
15.4.2利用Image控件制作小动画 390
15.4.3 PictureBox控件 391
15.4.4利用PictureBox控件浏览大幅图片 391
15.5图形属性 392
15.5.1使用CurrentX和CurrentY属性绘制图形坐标 392
15.5.2使用BackColor和ForeColor属性设置背景色和前景色 393
15.5.3使用FillColor和FillStyle属性设置填充效果 394
15.5.4使用DrawWidth、 DrawStyle和DrawMode属性设置绘制效果 395
15.5.5使用BorderStyle、 BorderWidth和BorderColor属性设置图形的边框效果 397
15.6图形方法 399
15.6.1使用Cls方法清屏 399
15.6.2使用PSet方法画点 399
15.6.3使用Point方法获取颜色值 400
15.6.4使用Line方法画线 401
15.6.5使用Circle方法画圆 402
15.6.6使用PaintPicture方法绘制图形 403
15.7图形方法应用实例 404
15.7.1绘制矩形 404
15.7.2绘制彩色圆饼 404
15.7.3绘制抛物线 405
15.8图像处理函数 406
15.8.1使用LoadPicture函数加载图像 406
15.8.2使用SavePicture函数保存图片 407
15.9实战 407
15.9.1利用图片实现电影胶片的效果 407
15.9.2万花筒 408
15.9.3屏幕放大镜 409
15.9.4图像颜色吸管 412
15.9.5图像的合成 413
15.10小结 414
15.11学习成果检验 414
第16章 多媒体技术 415
16.1 MMControl控件 416
16.1.1认识MMControl控件 416
16.1.2 MMControl控件的属性 416
16.1.3 MMControl控件的事件 420
16.2 MediaPlay控件 421
16.2.1认识MediaPlay控件 421
16.2.2 MediaPlay控件的属性 422
16.2.3 MediaPlay控件的方法 422
16.3 ShockwaveFlash控件 423
16.3.1认识ShockwaveFlash控件 423
16.3.2 ShockwaveFlash控件的属性 424
16.3.3 ShockwaveFlash控件的方法 424
16.3.4 ShockwaveFlash控件的事件 424
16.4 Animation控件 425
16.4.1认识Animation控件 425
16.4.2 Animation控件的属性 426
16.4.3 Animation控件的方法 426
16.5 DirectX 427
16.5.1下载和安装DirectX 427
16.5.2在VB中使用DirectX 428
16.5.3利用DirectSound编程实现实时混音 428
16.6实战 430
16.6.1 CD播放器 430
16.6.2 VCD播放器 431
16.6.3多媒体演示程序 432
16.6.4 使用ShockwaveFlash控件播放透明动画 433
16.6.5仿QQ宠物 434
16.7小结 436
16.8学习成果检验 436
第17章 鼠标和键盘处理 437
17.1鼠标指针的设置 438
17.1.1设置鼠标指针形状 438
17.1.2设置鼠标指针为指定的图片 439
17.1.3设置鼠标指针为指定的动画 439
17.1.4设置窗体的鼠标样式 440
17.1.5设置系统的鼠标样式 442
17.2鼠标事件的响应 444
17.2.1鼠标单击和双击事件(Click和DblClick事件) 444
17.2.2鼠标按下和抬起事件(MouseDown和MouseUp事件) 445
17.2.3鼠标移动事件(MouseMove事件) 446
17.3拖放操作 447
17.3.1与拖放相关的属性(DragMode和Draglcon属性) 447
17.3.2与拖放相关的事件(DragDrop和DragOver事件) 448
17.3.3与拖放相关的方法(Move和Drag方法) 450
17.4键盘事件的响应 451
17.4.1 KeyDown和KeyUp事件的使用 451
17.4.2 KeyPress事件的使用 452
17.5实战 453
17.5.1交换鼠标左右键 453
17.5.2鼠标跟随 454
17.5.3为程序设置热键 455
17.5.4警察抓小偷 456
17.5.5画桃花 458
17.6小结 460
17.7学习成果检验 460
第18章 综合实验(三)——电子相册模块 461
18.1电子相册模块概述 462
18.1.1开发背景 462
18.1.2需求分析 462
18.1.3功能结构 462
18.2关键技术 462
18.2.1图片翻页效果 462
18.2.2使用FSO对象操作文件夹和文件 464
18.2.3分页浏览图片 466
18.2.4按比例缩小图片 467
18.2.5文件夹浏览器 468
18.3主窗体设计 469
18.3.1功能概述 469
18.3.2窗体设计 470
18.3.3窗体初始化 471
18.3.4相册预览 471
18.3.5删除相册 472
18.3.6相片管理 473
18.4相册管理 474
18.4.1功能描述 474
18.4.2窗体设计 474
18.4.3创建和修改相册 474
18.5相册浏览设计 476
18.5.1功能描述 476
18.5.2窗体设计 476
18.5.3图片准备 477
18.5.4翻到下一页 477
18.5.5翻到上一页 479
18.6相片幻灯播放 480
18.6.1功能概述 480
18.6.2窗体设计 481
18.6.3窗体初始化 481
18.6.4动态循环显示图片 481
18.7查看原图片 483
18.7.1功能描述 483
18.7.2窗体设计 484
18.7.3浏览大图 484
18.8程序调试及错误处理 485
18.8.1“移动到”按钮菜单的动态加载错误 485
18.8.2路径未找到的错误处理 485
18.9小结 485
18.10学习成果检验 486
第4篇 数据库技术 488
第19章 数据库开发技术 488
19.1 VB访问数据库 489
19.2 ODBC 489
19.2.1认识ODBC 489
19.2.2配置ODBC数据源 489
19.3 Data控件 491
19.3.1认识Data控件 491
19.3.2用Data控件连接数据库 491
19.3.3 Data控件的综合应用 492
19.4 DAO对象 493
19.4.1引用DAO对象 493
19.4.2 DAO对象的子对象 493
19.4.3 DAO对象的综合应用 497
19.5 ADO控件 500
19.5.1认识ADO控件 500
19.5.2用ADO控件连接各种数据源 501
19.5.3用ADO控件连接记录源 502
19.5.4 ADO控件的常用属性、方法和事件 503
19.5.5 ADO控件的综合应用 503
19.6 ADO对象 504
19.6.1引用ADO对象 504
19.6.2 ADO对象的子对象 505
19.6.3连接多种数据库(Connection对象) 505
19.6.4连接记录源(Recordset对象) 506
19.6.5执行SQL语句(Command对象) 508
19.6.6 ADO对象的综合应用 509
19.7 RDO控件(远程数据控件) 510
19.7.1引用RDO控件到工程中 510
19.7.2 RDO控件与数据访问相关的属性 510
19.7.3使用RDO控件连接远程数据库 511
19.8数据库增、删、改、查技巧 512
19.8.1存取字段数据的几种方法 512
19.8.2使用数据绑定控件实现增、删、改 513
19.8.3非绑定控件的增、删、改 514
19.8.4使用ADO对象实现增、删、改 514
19.9实战 516
19.9.1获取SQL Server服务器中的所有数据库 516
19.9.2使用Openschema方法读取数据库结构 516
19.9.3带图像列表的系统登录程序 517
19.9.4动态设置ADO控件的属性 520
19.9.5用DataCombo和DataList显示关系表中的数据 520
19.10小结 521
19.11学习成果检验 522
第20章 数据库控件 523
20.1 DBCombo和DBList控件 524
20.2 DataCombo和DataList控件 524
20.2.1认识DataCombo和DataList控件 525
20.2.2 DataCombo和DataList控件的属性 525
20.2.3显示关系表中的数据 526
20.3 DataGrid控件 527
20.3.1认识DataGrid控件 527
20.3.2用DataGrid控件显示数据 528
20.3.3格式化数据 529
20.3.4锁定数据 530
20.3.5将DataGrid控件中的数据显示在文本框中 530
20.4 MSF1exGird和MSHF1exGrid控件 530
20.4.1认识MSHF1exGrid控件 531
20.4.2用MSHFlexGrid控件显示数据 531
20.4.3数据排序与合并 533
20.4.4隐藏行或列 534
20.4.5冻结字段 534
20.5实战 534
20.5.1加载企业部门名称 534
20.5.2驾驶员档案查询 537
20.5.3结账统计报表 538
20.5.4个人日记本 540
20.5.5备忘录 545
20.6小结 550
20.7学习成果检验 550
第21章 数据环境设计器及报表生成 551
21.1添加数据环境对象 552
21.2 Connection对象 553
21.2.1添加Connection对象 553
21.2.2连接Connection对象 553
21.3 Command对象 554
21.3.1创建Command对象 555
21.3.2 Command对象的层次结构 556
21.3.3字段映射 560
21.4 DataReport报表 561
21.4.1在工程中添加数据报表设计器 561
21.4.2数据报表设计器简介 561
21.4.3 DataReport对象的属性和方法 562
21.4.4设计简单的报表 563
21.5实战 564
21.5.1创建数据窗体 564
21.5.2添加、删除和修改记录 565
21.5.3向报表中添加日期、时间及页码 567
21.5.4主明细报表 567
21.5.5分组统计 569
21.6小结 570
21.7学习成果检验 570
第22章 程序调试和错误处理 571
22.1常见错误 572
22.1.1编译时错误 572
22.1.2运行时错误 572
22.1.3逻辑错误 572
22.2 VB的调试工具 572
22.2.1设置自动语法检查 572
22.2.2利用VB的调试工具栏 573
22.3工作模式 574
22.3.1设计模式 574
22.3.2运行模式 574
22.3.3中断模式 575
22.4调试方法 575
22.4.1控制程序的执行 575
22.4.2设置断点 576
22.4.3使用立即窗口 576
22.4.4使用本地窗口 576
22.4.5使用监视窗口 577
22.5错误处理语句和对象 578
22.5.1 Err对象 578
22.5.2捕获错误(On Error语句) 578
22.5.3退出错误处理(Resume语句) 579
22.5.4编写错误处理函数 579
22.6 常见错误的处理 580
22.6.1处理使用SetFocus方法时“无效的过程调用或参数”错误 580
22.6.2处理“对象变量或With块变量未设置”错误 580
22.6.3处理“找不到工程和库”错误 580
22.6.4处理没有启动窗体错误 581
22.6.5处理数组声明时“要求常量表达式”错误 581
22.7小结 581
第23章 综合实验(四)——小区物业管理模块 582
23.1小区物业管理模块概述 583
23.1.1模块概述 583
23.1.2需求分析 583
23.1.3功能结构 583
23.1.4程序预览 583
23.2数据库设计 585
23.2.1数据库分析 585
23.2.2数据库逻辑设计 585
23.3公共模块设计 587
23.4主窗体设计 588
23.4.1主窗体模块概述 588
23.4.2主窗体技术分析 588
23.4.3主窗体实现过程 589
23.5系统登录模块设计 593
23.5.1功能概述 593
23.5.2系统登录技术分析 594
23.5.3系统登录实现过程 594
23.6大楼信息登记设计 595
23.6.1功能概述 595
23.6.2技术分析 596
23.6.3大楼信息登记实现过程 597
23.7人口查询设计 600
23.7.1功能概述 600
23.7.2技术分析 600
23.7.3实现过程 601
23.8数据备份设计 603
23.8.1功能概述 603
23.8.2技术分析 604
23.8.3实现过程 604
23.9小结 606
23.10学习成果检验 606
第5篇 项目实战 608
第24章 企业人事管理系统 608
24.1需求分析 609
24.2系统设计 609
24.2.1系统目标 609
24.2.2系统功能结构 609
24.2.3系统预览 609
24.3数据库设计 611
24.3.1数据库概要说明 611
24.3.2数据库概念结构设计 611
24.3.3数据库逻辑结构设计 613
24.3.4触发器的创建 615
24.3.5自动计算列的创建 617
24.4公共模块设计 618
24.5主窗体设计 619
24.5.1主窗体概述 619
24.5.2技术分析 619
24.5.3 MDI主窗体实现过程 620
24.5.4菜单实现过程 621
24.5.5工具栏实现过程 622
24.5.6背景图窗体自适应 623
24.6添加员工信息模块设计 623
24.6.1添加员工信息模块概述 623
24.6.2技术分析 624
24.6.3添加员工信息模块的窗体设计 627
24.6.4使“编号”文本框获得焦点 627
24.6.5初始化列表项 628
24.6.6控件焦点的自动转移 629
24.6.7选择员工照片 629
24.6.8添加/修改员工信息 630
24.7添加/修改部门信息模块设计 632
24.7.1添加/修改部门信息模块概述 632
24.7.2技术分析 632
24.7.3添加/修改部门信息模块的窗体设计 633
24.7.4添加/修改部门信息模块的初始化 634
24.7.5添加或修改部门信息 634
24.8添加/修改出勤模块设计 635
24.8.1添加/修改出勤模块概述 635
24.8.2技术分析 636
24.8.3添加/修改出勤模块的窗体设计 637
24.8.4选择员工实现过程 637
24.8.5添加/修改出勤记录实现过程 641
24.9员工公出/请假模块设计 644
24.9.1员工公出/请假模块概述 644
24.9.2员工公出/请假模块窗体设计 645
24.9.3技术分析 645
24.9.4添加或修改员工公出/请假模块实现过程 646
24.9.5员工公出/请假模块实现过程 648
24.10工资信息管理模块设计 650
24.10.1工资信息管理模块概述 650
24.10.2技术分析 650
24.10.3工资信息管理模块的窗体设计 651
24.10.4选择工资月份 653
24.10.5查询工资信息 653
24.10.6工资信息导为Excel表 654
24.10.7修改工资信息 654
24.10.8批量修改工资信息 655
24.10.9过期工资处理 655
24.11文件清单 656
24.12小结 657
第25章 叶子图像处理专家 658
25.1需求分析 659
25.2系统设计 659
25.2.1系统目标 659
25.2.2系统功能结构 659
25.3系统运行环境 660
25.4创建项目 660
25.5启动窗体的设计 660
25.5.1设计窗体界面 661
25.5.2添加资源文件 661
25.5.3代码注册Flash控件 662
25.5.4调用Flash动画 663
25.6主窗体设计 664
25.6.1设计窗体界面 664
25.6.2设计菜单栏 664
25.6.3设计状态栏 666
25.6.4窗体初始化 666
25.6.5工具栏调用系统功能 667
25.6.6打开图片 668
25.6.7显示历史图片 669
25.6.8撤销/重复执行 670
25.6.9浏览大幅图片 671
25.7图像旋转 673
25.7.1图像旋转窗体的设计 673
25.7.2使用二次插值法缩放图片 673
25.7.3设置旋转角度 675
25.8图像的剪切与合成 677
25.8.1设计图像合成窗体 678
25.8.2利用资源文件加载剪切光标 678
25.8.3图像的剪切 679
25.8.4选择合成方式 679
25.8.5设置合成图片的坐标位置 680
25.8.6图像的合成 680
25.9设置图片大小 680
25.9.1窗体界面设计 681
25.9.2锁定纵横比率 681
25.9.3调整图片的大小 682
25.10“滤镜”窗体的设计 682
25.10.1设计“滤镜”窗体界面 683
25.10.2选择滤镜 683
25.10.3图片预览 685
25.10.4应用到主窗体图片上 685
25.11滤镜算法 686
25.11.1图像锐化算法 686
25.11.2图像柔化算法 687
25.11.3图像浮雕算法 688
25.11.4图像扩散算法 688
25.11.5图像轮廓算法 689
25.11.6图像饱和度算法 690
25.11.7图像亮度算法 691
25.12运行项目 693
25.13程序打包 694
25.14开发中常见问题与解决方案 694
25.14.1图像框中不显示输出图像 694
25.14.2 Win32系统错误处理 694
25.15小结 695
附录A 代码编写规则 696
附录B VB内部函数 699