编辑推荐
一本讲透基础知识、实例开发、模块开发、项目开发的百科全书。
《软件开发实战:Visual Basic开发实战》特色及学习资源包清单如下:
◆黄金学习搭配
基础知识、实例开发、模块开发、学习资源包。(图书+光盘+网站)
◆专业学习视频
光盘含有43小时大型同步教学视频,听专家现场演示讲解。(光盘中)
◆重难点精确打击
361个实战范例分析,精确掌握重点难点。(图书)
◆学习经验分享
提供互动、互助学习平台,学习经验分享。(登录网站)
◆学习测试、诊断
网站提供编程能力测试、软件考试模拟测试题库。(登录网站)
◆有趣实践任务
光盘提供1100多个实践任务,读者可以登录网站获取答案。(光盘+网站)
◆专业资源库
免费赠送程序开发资源库(学习版),拓展编程视野。(登录网站)
◆学习排忧解难
提供编程学习论坛,头脑风暴,帮您轻松解决编程困扰。(登录网站)
◆获取源程序
光盘提供几乎所有实例的源程序,可直接复制,照猫画虎,调试运行。(光盘中)
◆提供习题答案
本书对于习题都给出了答案,先自行作业,然后对比分析。(光盘中)
◆赠送开发案例
赠送开发案例文档、源程序和学习视频,帮助读者拓展视野,提高熟练度。(光盘中)
内容简介
《软件开发实战:Visual Basic开发实战》从初学者的角度讲述使用Visual Basic 6.0进行程序开发应该掌握的各项技术,内容突出“基础”、“全面”、“深入”的特点,强调“实战”效果,只掌握和理解技术而没有实际应用,等于没有掌握技术,本书各章在介绍技术的同时,都会提供示例或实例,在各章的结尾也安排有综合应用,目的是通过几个小型项目综合应用本章所学习的知识,做到理论联系实际。本书的最后两章提供了两个完整的项目实例,讲述从前期规划、设计流程图到项目最终实施的整个实现过程。
《软件开发实战:Visual Basic开发实战》共分25章,包括Visual Basic集成开发环境,VB语言基础,算法和程序控制结构,数组与集合,过程,内置函数,万年历模块,窗体和系统对象,常用标准控件,常用ActiveX控件,菜单、工具栏和状态栏,对话框,Word自动化控制模块,文件系统编程,图形图像技术,多媒体技术,鼠标和键盘处理,电子相册模块,数据库开发技术,数据库控件,数据环境设计器及报表生成,程序调试和错误处理,小区物业管理模块,企业人事管理系统,叶子图像处理专家等。所有知识都结合具体实例进行介绍,对涉及的程序代码给出了详细的注释,读者可以轻松领会VB程序开发的精髓,快速提高开发技能。本书特色及丰富的学习资源包如下:
黄金学习搭配、专业学习视频、重难点精确打击、学习经验分享、学习测试诊断、有趣实践任务、专业资源库、学习排忧解难、获取源程序、提供习题答案、赠送开发案例。
《软件开发实战:Visual Basic开发实战》适合有志于从事软件开发的初学者、高校计算机相关专业的学生,也可作为软件开发人员的参考手册,或者高校老师的教学参考书。
内页插图
目录
第1篇 基础知识
第1章 Visual Basic集成开发环境
视频讲解:145分钟
1.1 Visual Basic简介
1.1.1 Visual Basic概述
1.1.2 Visual Basic 6.0的特点
1.1.3 Visual Basic 6.0的局限性
1.2 学习Visual Basic的好处
1.2.1 Visual Basic可以做什么
1.2.2 学习Visual Basic的几点建议
1.3 Visual Basic开发环境的安装和程序启动
1.3.1 Visual Basic 6.0的运行环境
1.3.2 Visual Basic 6.0+SP6的安装
1.3.3 Visual Basic 6.0的启动
1.4 Visual Basic 6.0的集成开发环境
1.4.1 集成开发环境简介
1.4.2 菜单栏
1.4.3 工具栏
1.4.4 工具箱
1.4.5 工程资源管理器
1.4.6 属性窗口
1.4.7 窗体布局窗口
1.4.8 窗体设计器
1.4.9 代码编辑窗口
1.5 Visual Basic的MDI和SDI开发环境
1.5.1 多文档界面开发环境
1.5.2 单文档界面开发环境
1.6 开发环境使用技巧
1.6.1 设置启动时保存
1.6.2 自定义工具栏
1.6.3 为代码编辑器设置鼠标滚动
1.6.4 设置网格大小和不对齐到网格
1.6.5 设置在编辑器中要求变量声明
1.6.6 规范代码缩进格式
1.7 Visual Basic 6.0的帮助系统
1.7.1 MSDN Library的安装与使用
1.7.2 利用附带的实例源程序学习编程
1.7.3 使用Visual Basic的帮助菜单
1.8 创建第一个VB程序
1.8.1 创建工程文件
1.8.2 设计界面
1.8.3 编写代码
1.8.4 调试运行
1.8.5 保存工程
1.8.6 编译程序
1.9 利用应用程序向导自动生成应用程序
1.10 实战
1.10.1 设置控件大小一致
1.10.2 创建或打开新工程
1.10.3 添加ActiveX控件
1.10.4 显示文字
1.10.5 加法计算器
1.11 小结
1.12 学习成果检验
第2章 VB语言基础
视频讲解:118分钟
2.1 关键字和标识符
2.2 基本数据类型
2.2.1 字符型
2.2.2 数值型
2.2.3 布尔型
2.2.4 日期型
2.2.5 变体型
2.2.6 对象型
2.3 记录类型
2.4 枚举类型
2.5 变量
2.5.1 什么是变量
2.5.2 变量的命名
2.5.3 变量的声明
2.6 变量的作用域
2.6.1 静态变量
2.6.2 变量同名问题的处理
2.7 常量
2.7.1 常量的声明
2.7.2 局部常量和全局常量
2.8 运算符
2.9 表达式
2.9.1 什么是表达式
2.9.2 表达式的种类
2.9.3 运算符在表达式中的优先级
2.10 语言基础应用技巧
2.10.1 如何处理溢出
2.10.2 正确使用“&”和“+”
2.10.3 正确使用Or、Xor、And、Eqv、Imp运算符
2.11 实战
2.11.1 判断输错口令次数
2.11.2 欢迎窗体
2.11.3 计算圆的面积
2.11.4 日期提醒程序
2.11.5 袖珍计算器
2.12 小结
2.13 学习成果检验
第3章 算法和程序控制结构
视频讲解:166分钟
3.1 算法
3.1.1 什么是算法
3.1.2 算法的特性
3.1.3 算法的描述方法
3.1.4 构成算法的基本控制结构
3.2 顺序结构
3.2.1 赋值语句
3.2.2 数据的输入
3.2.3 数据的输出
3.3 选择结构
3.3.1 单分支If...Then语句
3.3.2 双分支If...Then...Else语句
3.3.3 If语句的嵌套
3.3.4 多分支If...Then...ElseIf语句
3.3.5 Select Case语句
3.3.6 IIf函数
3.4 循环结构
3.4.1 For...Next循环语句
3.4.2 For Each...Next循环语句
3.4.3 Do...Loop循环语句
3.4.4 多重循环
3.4.5 选择结构与循环结构的嵌套
3.5 其他辅助控制语句
3.5.1 跳转语句GoTo
3.5.2 复用语句With...End With
3.5.3 退出语句Exit
3.5.4 结束语句End
3.6 实战
3.6.1 计算最大公约数和最小公倍数
3.6.2 判断素数
3.6.3 验证哥德巴赫猜想
3.6.4 用For…Next语句求解整数n的阶乘
3.6.5 用Print语句打印工资数据
3.7 小结
3.8 学习成果检验
第4章 数组与集合
视频讲解:132分钟
4.1 数组概述
4.1.1 数组的概念
4.1.2 数组与简单变量的区别
4.1.3 数组的分类
4.2 静态数组
4.2.1 静态数组的声明和使用
4.2.2 一维数组
4.2.3 二维数组
4.2.4 多维数组
4.3 动态数组
4.3.1 动态数组的声明
4.3.2 动态数组的使用
4.3.3 数组的清除
4.4 控件数组
4.4.1 控件数组的概念
4.4.2 控件数组的创建
4.4.3 控件数组的使用
4.4.4 加载和删除控件数组中的控件
4.5 数组相关函数及语句
4.5.1 使用Array函数创建数组
4.5.2 使用UBound和LBound函数获取数组上下标
4.5.3 使用Split函数生成一维字符串数组
4.5.4 使用Option Base语句声明数组下标最大值
4.6 集合
4.6.1 集合的创建
4.6.2 控件集合(Controls集合)
4.7 实战
4.7.1 动态添加和删除控件
4.7.2 利用数组实现随机抽取幸运观众
4.7.3 利用二维数组向网格控件中添加背景图片
4.7.4 统计文字段落数
4.7.5 成绩排名
4.8 小结
4.9 学习成果检验
第5章 过程
视频讲解:97分钟
5.1 认识过程
5.2 事件过程
5.2.1 建立事件过程
5.2.2 调用事件过程
5.3 子过程(Sub过程)
5.3.1 建立子过程
5.3.2 调用子过程
5.3.3 调用其他模块中的子过程
5.4 函数过程(Function过程)
5.4.1 建立函数过程
5.4.2 调用函数过程
5.4.3 函数过程与子过程的区别
5.5 参数的传递
5.5.1 认识参数
5.5.2 参数按值和按地址传递
5.5.3 数组参数
5.5.4 对象参数
5.6 嵌套过程
5.7 递归过程
5.8 属性过程(Property过程)
5.8.1 使用属性过程建立类的属性
5.8.2 使用类属性
5.8.3 只读属性和对象属性
5.9 工程中的模块
5.9.1 窗体模块
5.9.2 标准模块
5.9.3 类模块
5.9.4 标准模块与类模块的区别
5.10 过程的作用域
5.11 实战
5.11.1 编写计算圆面积的函数过程
5.11.2 自定义二进制转换为十进制的函数
5.11.3 利用递归实现求最大公约数
5.11.4 计算水果的加权平均值
5.11.5 判断闰年
5.12 小结
5.13 学习成果检验
第6章 内置函数
视频讲解:122分钟
6.1 字符串函数
6.1.1 获取字符长度(Len函数)
6.1.2 取左(右)面指定个数的字符(Left和Right函数)
6.1.3 截取字符串(Mid函数)
6.1.4 获取字符出现的位置(InStr和InStrRev函数)
6.1.5 去除空格(Trim、RTrim、LTrim函数)
6.1.6 将字符串转换为大(小)写(UCase和LCase函数)
6.2 数学函数
6.2.1 求绝对值(Abs函数)
6.2.2 求平方根(Sqr函数)
6.2.3 e的n次方(Exp函数)
6.2.4 求自然对数(Log函数)
6.2.5 返回符号(Sgn函数)
6.2.6 取整(Int和Fix函数)
6.3 判断函数
6.3.1 判断是否为数组(IsArray函数)
6.3.2 判断是否为Null(IsNull函数)
6.3.3 判断是否为数字(IsNumeric函数)
6.4 类型转换函数
6.4.1 转换为字符型(Str函数)
6.4.2 转换为数值型(Val函数)
6.4.3 转换为ASCII(Asc函数)
6.4.4 转换为字符(Chr函数)
6.5 日期和时间函数
6.5.1 Date、Now和Time函数
6.5.2 Weekday函数
6.5.3 返回年、月、日(Year、Month、Day函数)
6.5.4 返回时、分、秒(Hour、Minute、Second函数)
6.6 随机函数
6.6.1 初始化随机数(Randomize函数)
6.6.2 生成随机数(Rnd函数)
6.7 格式化函数
6.8 实战
6.8.1 判断某个时间段里有多少个工作日
6.8.2 数字时钟
6.8.3 计算器
6.8.4 幸运抽奖
6.8.5 猜数字
6.9 小结
6.10 学习成果检验
第7章 综合实验(一)——万年历模块
7.1 万年历模块概述
7.1.1 模块概述
7.1.2 程序预览
7.2 关键技术
7.2.1 日历显示控件排列算法
7.2.2 阳历转换到阴历算法
7.2.3 阴历转换到阳历算法
7.2.4 SendMessage函数实现移动窗体
7.3 实现过程
7.4 小结
7.5 学习成果检验
第2篇 基本控件
第8章 窗体和系统对象
视频讲解:152分钟
8.1 窗体概述
8.1.1 窗体的结构
8.1.2 模式窗体和无模式窗体
8.1.3 SDI窗体和MDI窗体
8.2 窗体的属性
8.2.1 名称(Name属性)
8.2.2 标题(Caption属性)
8.2.3 图标(Icon属性)
8.2.4 背景(Picture属性)
8.2.5 边框样式(BorderStyle属性)
8.3 窗体的事件
8.3.1 单击和双击(Click/DblClick事件)
8.3.2 载入和卸载(Load/QueryUnload/Unload事件)
8.3.3 初始化(Initialize事件)
8.3.4 活动性(Activate/Deactivate事件)
8.3.5 焦点事件(GotFocus/LostFocus事件)
8.3.6 重绘(Paint事件)
8.3.7 调整大小(Resize事件)
8.4 窗体事件的生命周期
8.5 窗体的方法
8.5.1 加载窗体(Load方法)
8.5.2 卸载窗体(Unload方法)
8.5.3 显示窗体(Show方法)
8.5.4 隐藏窗体(Hide方法)
8.5.5 移动窗体(Move方法)
8.5.6 清除窗体(Cls方法)
8.5.7 在窗体上显示文本(Print方法)
8.5.8 打印窗体(PrintForm方法)
8.6 MDI窗体
8.6.1 MDI窗体概述
8.6.2 MDI窗体的创建
8.6.3 在MDI窗体中添加控件
8.6.4 MDI子窗体(MDIChild属性)
8.6.5 MDI窗体的特点
8.7 窗体应用技巧
8.7.1 如何设置闪烁的窗体标题栏
8.7.2 如何设置窗体前置
8.7.3 如何拖动无标题栏窗体移动
8.8 系统对象
8.8.1 应用程序对象(App对象)
8.8.2 屏幕对象(Screen对象)
8.8.3 剪贴板对象(Clipboard对象)
8.8.4 调试对象(Debug对象)
8.9 实战
8.9.1 在窗口中平铺图片
8.9.2 透明窗体
8.9.3 利用App对象防止程序重复
8.9.4 利用Screen对象获得系统中的可用字体
8.9.5 记录剪贴板内容
8.10 小结
8.11 学习成果检验
第9章 常用标准控件
视频讲解:234分钟
9.1 控件概述
9.1.1 控件的作用
9.1.2 控件的分类
9.1.3 控件的命名
9.1.4 控件的属性、方法和事件
9.2 控件的相关操作
9.2.1 向窗体上添加控件
9.2.2 设置控件大小和位置
9.2.3 复制控件
9.2.4 删除控件
9.2.5 锁定控件
9.2.6 使用窗体编辑器调整控件布局
9.3 界面设计的基本原则
9.4 标签控件(Label控件)
9.4.1 标签控件概述
9.4.2 标签控件的常用属性
9.4.3 利用标签控件实现鼠标交互效果
9.5 文本框控件(TextBox控件)
9.5.1 文本框控件概述
9.5.2 文本框控件的常用属性、方法和事件
9.5.3 利用文本框控件实现用户登录
9.6 命令按钮控件(CommandButton控件)
9.6.1 命令按钮概述
9.6.2 命令按钮的常用属性和事件
9.6.3 利用命令按钮实现加载图片的功能
9.7 单选按钮、复选框及框架
9.7.1 单选按钮(OptionButton控件)
9.7.2 复选框(CheckBox控件)
9.7.3 框架(Frame控件)
9.7.4 设置字体显示效果
9.8 列表框控件(ListBox控件)
9.8.1 列表框控件概述
9.8.2 列表框控件的常用属性、方法和事件
9.8.3 随机抽取列表框中数据
9.9 组合框控件(ComboBox控件)
9.9.1 组合框控件概述
9.9.2 组合框控件的常用属性
9.9.3 改变ComboBox控件下拉列表框的长度
9.10 滚动条控件(HScrollBar和VScrollBar控件)
9.10.1 滚动条控件概述
9.10.2 滚动条控件的属性和事件
9.10.3 利用滚动条浏览大幅图片
9.11 时钟控件(Timer控件)
9.11.1 Timer控件的属性和事件
9.11.2 利用Timer控件设计小游戏
9.12 实战
9.12.1 利用基本控件实现显示学生信息
9.12.2 为TextBox控件添加列表选择框
9.12.3 赛马游戏
9.12.4 掷骰子
9.12.5 贪吃蛇
9.13 小结
9.14 学习成果检验
第10章 常用ActiveX控件
视频讲解:116分钟
10.1 ActiveX控件的使用
10.1.1 ActiveX控件概述
10.1.2 注册ActiveX控件
10.1.3 添加ActiveX控件
10.1.4 删除ActiveX控件
10.2 图像列表控件(ImageList控件)
10.2.1 认识ImageList控件
10.2.2 添加图像
10.2.3 与其他控件关联
10.2.4 创建组合图像
10.3 视图控件(ListView控件)
10.3.1 认识ListView控件
10.3.2 添加数据
10.3.3 用ListView控件+数据表创建报表视图
10.3.4 用ListView控件创建大图标视图
10.4 树状控件(TreeView控件)
10.4.1 认识TreeView控件
10.4.2 添加数据
10.4.3 删除指定节点数据
10.4.4 节点展开与折叠
10.4.5 用TreeView控件+数据表创建多级树状视图
10.5 选项卡控件(SSTab控件)
10.5.1 认识SSTab控件
10.5.2 设置选项卡数目和行数
10.5.3 在选项卡中添加控件
10.5.4 运行时启用和停用选项卡
10.5.5 定制不同样式的选项卡
10.5.6 图形化选项卡
10.6 进度条控件(ProgressBar控件)
10.6.1 认识ProgressBar控件
10.6.2 显示进展情况
10.6.3 将Max属性设置为已知的界限
10.6.4 隐藏ProgressBar控件
10.6.5 用ProgressBar控件显示清空数据的进度
10.7 日期/时间控件(DateTimePicker控件)
10.7.1 认识DateTimePicker控件
10.7.2 设置和返回日期
10.7.3 实时读取DTPicker控件中的日期
10.7.4 使用CheckBox属性选择无日期
10.7.5 使用日期和时间的格式
10.7.6 使用DTPicker控件计算日期或天数
10.8 实战
10.8.1 使用MaskEdBox控件限制日期输入格式
10.8.2 进度条循环滚动
10.8.3 企业部门信息查询导航栏
10.8.4 保质期计算器
10.8.5 制作带有图标的客户管理系统导航栏
10.9 小结
10.10 学习成果检验
第11章 菜单、工具栏和状态栏
视频讲解:135分钟
11.1 菜单概述
11.1.1 菜单的概念
11.1.2 菜单的组成
11.1.3 菜单的状态
11.1.4 菜单编辑器
11.2 标准菜单
11.2.1 最简菜单
11.2.2 菜单无效状态
11.2.3 级联菜单
11.2.4 菜单分割条
11.2.5 复选菜单
11.2.6 菜单的快捷键和访问键
11.2.7 创建菜单数组
11.2.8 修饰菜单
11.2.9 为菜单事件添加代码
11.3 弹出式菜单
11.3.1 弹出式菜单概述
11.3.2 PopupMenu方法
11.3.3 弹出式菜单的设计和调用
11.3.4 利用弹出式菜单为无标题栏窗体添加菜单
11.4 菜单的编程
11.4.1 菜单的多列显示
11.4.2 可伸缩的菜单项
11.4.3 为菜单添加图标
11.4.4 菜单复制器
11.5 工具栏设计
11.5.1 工具栏概述
11.5.2 利用Toolbar控件创建最简工具栏
11.5.3 为工具栏按钮添加图片
11.5.4 为工具栏按钮设置分组
11.5.5 为工具栏添加下拉菜单
11.5.6 给工具栏按钮添加事件处理代码
11.6 状态栏设计
11.6.1 状态栏概述
11.6.2 利用状态栏显示操作员信息
11.6.3 利用状态栏显示日期、时间
11.6.4 利用状态栏显示鼠标位置
11.7 实战
11.7.1 改变菜单的颜色
11.7.2 托盘上的弹出式菜单
11.7.3 向工具栏中添加ComboBox控件
11.7.4 在状态栏中显示窗体信息
11.7.5 保存历史信息的菜单
11.8 小结
11.9 学习成果检验
第12章 对话框
视频讲解:52分钟
12.1 输入对话框
12.2 消息对话框
12.3 公用对话框
12.3.1 公用对话框概述
12.3.2 “打开”对话框
12.3.3 “另存为”对话框
12.3.4 “颜色”对话框
12.3.5 “字体”对话框
12.3.6 “打印”对话框
12.3.7 “帮助”对话框
12.4 实战
12.4.1 使用“打开”对话框打开图片
12.4.2 读取并保存INI文件
12.4.3 使用“颜色”对话框设置文字颜色
12.4.4 制作“运行”对话框中的“浏览”对话框
12.4.5 创建“是否替换文件”对话框
12.5 小结
12.6 学习成果检验
第13章 综合实验(二)——Word自动化控制模块
13.1 Word自动化控制模块概述
13.1.1 开发背景
13.1.2 需求分析
13.1.3 功能结构
13.2 关键技术
13.2.1 应用PageSetup对象设置页面
13.2.2 应用RangeFind对象的Execute方法实现查找和替换
13.2.3 编辑页面提取目录
13.2.4 应用ShellExecute函数打印Word文档
13.2.5 应用BuiltInDocumentProperties属性获取文档属性
13.3 主窗体设计
13.3.1 功能概述
13.3.2 MDI主窗体设计
13.3.3 在列表中显示Word文件
13.3.4 文档打印
13.3.5 文档属性
13.4 文档设置
13.4.1 功能概述
13.4.2 窗体设计
13.4.3 设置页边距、纸型和页眉/页脚
13.5 文档修改
13.5.1 功能概述
13.5.2 窗体设计
13.5.3 实现代码
13.6 文档处理
13.6.1 功能概述
13.6.2 窗体设计
13.6.3 统计、编辑页码并提取目录
13.7 疑难问题分析与解决
13.7.1 获取文件属性的字符串
13.7.2 如何实现目录的提取
13.8 小结
13.9 学习成果检验
第3篇 高级应用
第14章 文件系统编程
视频讲解:120分钟
14.1 文件的基本概念
14.1.1 文件的一般结构
14.1.2 文件的分类
14.1.3 文件的访问方式
14.2 顺序文件
14.2.1 打开顺序文件
14.2.2 关闭顺序文件
14.2.3 读取顺序文件
14.2.4 写入顺序文件
14.3 随机文件
14.3.1 随机文件的特点
14.3.2 打开随机文件
14.3.3 关闭随机文件
14.3.4 读取随机文件
14.3.5 写入随机文件
14.4 二进制文件
14.4.1 打开二进制文件
14.4.2 二进制文件的关闭
14.4.3 二进制文件的读取与写入操作
14.5 文件操作函数
14.5.1 利用CurDir函数获取路径
14.5.2 利用FileLen函数返回文件长度
14.5.3 利用EOF函数测试文件结束状态
14.5.4 利用LOF函数获取打开文件的大小
14.5.5 利用GetAttr函数获取文件属性
14.5.6 利用FileDateTime函数获取文件创建或修改时间
14.6 文件操作语句
14.6.1 利用FileCopy语句复制文件
14.6.2 利用Name语句重命名文件
14.6.3 利用Kill语句删除文件
14.6.4 利用ChDrive语句改变当前驱动器
14.6.5 利用ChDir语句改变目录或文件夹
14.6.6 利用MkDir语句创建目录或文件夹
14.6.7 利用SetAttr语句设置文件属性
14.7 文件系统控件
14.7.1 驱动器列表框控件(DriveListBox控件)
14.7.2 目录列表框控件(DirListBox控件)
14.7.3 文件列表框控件(FileListBox控件)
14.7.4 利用文件系统控件读取文件
14.8 实战
14.8.1 批量移动文件
14.8.2 文件及文件夹名提取器
14.8.3 文档编辑器
14.8.4 过滤文件中的重要数据
14.8.5 为顺序文件添加数字编号
14.9 小结
14.10 学习成果检验
第15章 图形图像技术
视频讲解:95分钟
15.1 坐标系统
15.1.1 默认的坐标系统
15.1.2 自定义的坐标系统
15.2 图形、图像中的颜色
15.2.1 QBColor函数
15.2.2 RGB函数
15.3 图形处理控件
15.3.1 Line控件
15.3.2 利用Line控件设计分割线
15.3.3 Shape控件
15.4 图像处理控件
15.4.1 Image控件
15.4.2 利用Image控件制作小动画
15.4.3 PictureBox控件
15.4.4 利用PictureBox控件浏览大幅图片
15.5 图形属性
15.5.1 使用CurrentX和CurrentY属性绘制图形坐标
15.5.2 使用BackColor和ForeColor属性设置背景色和前景色
15.5.3 使用FillColor和FillStyle属性设置填充效果
15.5.4 使用DrawWidth、DrawStyle和DrawMode属性设置绘制效果
15.5.5 使用BorderStyle、BorderWidth和BorderColor属性设置图形的边框效果
15.6 图形方法
15.6.1 使用Cls方法清屏
15.6.2 使用PSet方法画点
15.6.3 使用Point方法获取颜色值
15.6.4 使用Line方法画线
15.6.5 使用Circle方法画圆
15.6.6 使用PaintPicture方法绘制图形
15.7 图形方法应用实例
15.7.1 绘制矩形
15.7.2 绘制彩色圆饼
15.7.3 绘制抛物线
15.8 图像处理函数
15.8.1 使用LoadPicture函数加载图像
15.8.2 使用SavePicture函数保存图片
15.9 实战
15.9.1 利用图片实现电影胶片的效果
15.9.2 万花筒
15.9.3 屏幕放大镜
15.9.4 图像颜色吸管
15.9.5 图像的合成
15.10 小结
15.11 学习成果检验
第16章 多媒体技术
视频讲解:58分钟
16.1 MMControl控件
16.1.1 认识MMControl控件
16.1.2 MMControl控件的属性
16.1.3 MMControl控件的事件
16.2 MediaPlay控件
16.2.1 认识MediaPlay控件
16.2.2 MediaPlay控件的属性
16.2.3 MediaPlay控件的方法
16.3 ShockwaveFlash控件
16.3.1 认识ShockwaveFlash控件
16.3.2 ShockwaveFlash控件的属性
16.3.3 ShockwaveFlash控件的方法
16.3.4 ShockwaveFlash控件的事件
16.4 Animation控件
16.4.1 认识Animation控件
16.4.2 Animation控件的属性
16.4.3 Animation控件的方法
16.5 DirectX
16.5.1 下载和安装DirectX
16.5.2 在VB中使用DirectX
16.5.3 利用DirectSound编程实现实时混音
16.6 实战
16.6.1 CD播放器
16.6.2 VCD播放器
16.6.3 多媒体演示程序
16.6.4 使用ShockwaveFlash控件播放透明动画
16.6.5 仿QQ宠物
16.7 小结
16.8 学习成果检验
第17章 鼠标和键盘处理
视频讲解:71分钟
17.1 鼠标指针的设置
17.1.1 设置鼠标指针形状
17.1.2 设置鼠标指针为指定的图片
17.1.3 设置鼠标指针为指定的动画
17.1.4 设置窗体的鼠标样式
17.1.5 设置系统的鼠标样式
17.2 鼠标事件的响应
17.2.1 鼠标单击和双击事件(Click和DblClick事件)
17.2.2 鼠标按下和抬起事件(MouseDown和MouseUp事件)
17.2.3 鼠标移动事件(MouseMove事件)
17.3 拖放操作
17.3.1 与拖放相关的属性(DragMode和DragIcon属性)
17.3.2 与拖放相关的事件(DragDrop和DragOver事件)
17.3.3 与拖放相关的方法(Move和Drag方法)
17.4 键盘事件的响应
17.4.1 KeyDown和KeyUp事件的使用
17.4.2 KeyPress事件的使用
17.5 实战
17.5.1 交换鼠标左右键
17.5.2 鼠标跟随
17.5.3 为程序设置热键
17.5.4 警察抓小偷
17.5.5 画桃花
17.6 小结
17.7 学习成果检验
第18章 综合实验(三)——电子相册模块
18.1 电子相册模块概述
18.1.1 开发背景
18.1.2 需求分析
18.1.3 功能结构
18.2 关键技术
18.2.1 图片翻页效果
18.2.2 使用FSO对象操作文件夹和文件
18.2.3 分页浏览图片
18.2.4 按比例缩小图片
18.2.5 文件夹浏览器
18.3 主窗体设计
18.3.1 功能概述
18.3.2 窗体设计
18.3.3 窗体初始化
18.3.4 相册预览
18.3.5 删除相册
18.3.6 相片管理
18.4 相册管理
18.4.1 功能描述
18.4.2 窗体设计
18.4.3 创建和修改相册
18.5 相册浏览设计
18.5.1 功能描述
18.5.2 窗体设计
18.5.3 图片准备
18.5.4 翻到下一页
18.5.5 翻到上一页
18.6 相片幻灯播放
18.6.1 功能概述
18.6.2 窗体设计
18.6.3 窗体初始化
18.6.4 动态循环显示图片
18.7 查看原图片
18.7.1 功能描述
18.7.2 窗体设计
18.7.3 浏览大图
18.8 程序调试及错误处理
18.8.1 “移动到”按钮菜单的动态加载错误
18.8.2 路径未找到的错误处理
18.9 小结
18.10 学习成果检验
第4篇 数据库技术
第19章 数据库开发技术
视频讲解:109分钟
19.1 VB访问数据库
19.2 ODBC
19.2.1 认识ODBC
19.2.2 配置ODBC数据源
19.3 Data控件
19.3.1 认识Data控件
19.3.2 用Data控件连接数据库
19.3.3 Data控件的综合应用
19.4 DAO对象
19.4.1 引用DAO对象
19.4.2 DAO对象的子对象
19.4.3 DAO对象的综合应用
19.5 ADO控件
19.5.1 认识ADO控件
19.5.2 用ADO控件连接各种数据源
19.5.3 用ADO控件连接记录源
19.5.4 ADO控件的常用属性、方法和事件
19.5.5 ADO控件的综合应用
19.6 ADO对象
19.6.1 引用ADO对象
19.6.2 ADO对象的子对象
19.6.3 连接多种数据库(Connection对象)
19.6.4 连接记录源(Recordset对象)
19.6.5 执行SQL语句(Command对象)
19.6.6 ADO对象的综合应用
19.7 RDO控件(远程数据控件)
19.7.1 引用RDO控件到工程中
19.7.2 RDO控件与数据访问相关的属性
19.7.3 使用RDO控件连接远程数据库
19.8 数据库增、删、改、查技巧
19.8.1 存取字段数据的几种方法
19.8.2 使用数据绑定控件实现增、删、改
19.8.3 非绑定控件的增、删、改
19.8.4 使用ADO对象实现增、删、改
19.9 实战
19.9.1 获取SQL Server服务器中的所有数据库
19.9.2 使用Openschema方法读取数据库结构
19.9.3 带图像列表的系统登录程序
19.9.4 动态设置ADO控件的属性
19.9.5 用DataCombo和DataList显示关系表中的数据
19.10 小结
19.11 学习成果检验
第20章 数据库控件
视频讲解:73分钟
20.1 DBCombo和DBList控件
20.2 DataCombo和DataList控件
20.2.1 认识DataCombo和DataList控件
20.2.2 DataCombo和DataList控件的属性
20.2.3 显示关系表中的数据
20.3 DataGrid控件
20.3.1 认识DataGrid控件
20.3.2 用DataGrid控件显示数据
20.3.3 格式化数据
20.3.4 锁定数据
20.3.5 将DataGrid控件中的数据显示在文本框中
20.4 MSFlexGrid和MSHFlexGrid控件
20.4.1 认识MSHFlexGrid控件
20.4.2 用MSHFlexGrid控件显示数据
20.4.3 数据排序与合并
20.4.4 隐藏行或列
20.4.5 冻结字段
20.5 实战
20.5.1 加载企业部门名称
20.5.2 驾驶员档案查询
20.5.3 结账统计报表
20.5.4 个人日记本
20.5.5 备忘录
20.6 小结
20.7 学习成果检验
第21章 数据环境设计器及报表生成
视频讲解:110分钟
21.1 添加数据环境对象
21.2 Connection对象
21.2.1 添加Connection对象
21.2.2 连接Connection对象
21.3 Command对象
21.3.1 创建Command对象
21.3.2 Command对象的层次结构
21.3.3 字段映射
21.4 DataReport报表
21.4.1 在工程中添加数据报表设计器
21.4.2 数据报表设计器简介
21.4.3 DataReport对象的属性和方法
21.4.4 设计简单的报表
21.5 实战
21.5.1 创建数据窗体
21.5.2 添加、删除和修改记录
21.5.3 向报表中添加日期、时间及页码
21.5.4 主明细报表
21.5.5 分组统计
21.6 小结
21.7 学习成果检验
第22章 程序调试和错误处理
视频讲解:30分钟
22.1 常见错误
22.1.1 编译时错误
22.1.2 运行时错误
22.1.3 逻辑错误
22.2 VB的调试工具
22.2.1 设置自动语法检查
22.2.2 利用VB的调试工具栏
22.3 工作模式
22.3.1 设计模式
22.3.2 运行模式
22.3.3 中断模式
22.4 调试方法
22.4.1 控制程序的执行
22.4.2 设置断点
22.4.3 使用立即窗口
22.4.4 使用本地窗口
22.4.5 使用监视窗口
22.5 错误处理语句和对象
22.5.1 Err对象
22.5.2 捕获错误(On Error语句)
22.5.3 退出错误处理(Resume语句)
22.5.4 编写错误处理函数
22.6 常见错误的处理
22.6.1 处理使用SetFocus方法时“无效的过程调用或参数”错误
22.6.2 处理“对象变量或With块变量未设置”错误
22.6.3 处理“找不到工程和库”错误
22.6.4 处理没有启动窗体错误
22.6.5 处理数组声明时“要求常量表达式”错误
22.7 小结
第23章 综合实验(四)——小区物业管理模块
视频讲解:83分钟
23.1 小区物业管理模块概述
23.1.1 模块概述
23.1.2 需求分析
23.1.3 功能结构
23.1.4 程序预览
23.2 数据库设计
23.2.1 数据库分析
23.2.2 数据库逻辑设计
23.3 公共模块设计
23.4 主窗体设计
23.4.1 主窗体模块概述
23.4.2 主窗体技术分析
23.4.3 主窗体实现过程
23.5 系统登录模块设计
23.5.1 功能概述
23.5.2 系统登录技术分析
23.5.3 系统登录实现过程
23.6 大楼信息登记设计
23.6.1 功能概述
23.6.2 技术分析
23.6.3 大楼信息登记实现过程
23.7 人口查询设计
23.7.1 功能概述
23.7.2 技术分析
23.7.3 实现过程
23.8 数据备份设计
23.8.1 功能概述
23.8.2 技术分析
23.8.3 实现过程
23.9 小结
23.10 学习成果检验
第5篇 项目实战
第24章 企业人事管理系统
视频讲解:248分钟
24.1 需求分析
24.2 系统设计
24.2.1 系统目标
24.2.2 系统功能结构
24.2.3 系统预览
24.3 数据库设计
24.3.1 数据库概要说明
24.3.2 数据库概念结构设计
24.3.3 数据库逻辑结构设计
24.3.4 触发器的创建
24.3.5 自动计算列的创建
24.4 公共模块设计
24.5 主窗体设计
24.5.1 主窗体概述
24.5.2 技术分析
24.5.3 MDI主窗体实现过程
24.5.4 菜单实现过程
24.5.5 工具栏实现过程
24.5.6 背景图窗体自适应
24.6 添加员工信息模块设计
24.6.1 添加员工信息模块概述
24.6.2 技术分析
24.6.3 添加员工信息模块的窗体设计
24.6.4 使“编号”文本框获得焦点
24.6.5 初始化列表项
24.6.6 控件焦点的自动转移
24.6.7 选择员工照片
24.6.8 添加/修改员工信息
24.7 添加/修改部门信息模块设计
24.7.1 添加/修改部门信息模块概述
24.7.2 技术分析
24.7.3 添加/修改部门信息模块的窗体设计
24.7.4 添加/修改部门信息模块的初始化
24.7.5 添加或修改部门信息
24.8 添加/修改出勤模块设计
24.8.1 添加/修改出勤模块概述
24.8.2 技术分析
24.8.3 添加/修改出勤模块的窗体设计
24.8.4 选择员工实现过程
24.8.5 添加/修改出勤记录实现过程
24.9 员工公出/请假模块设计
24.9.1 员工公出/请假模块概述
24.9.2 员工公出/请假模块窗体设计
24.9.3 技术分析
24.9.4 添加或修改员工公出/请假模块实现过程
24.9.5 员工公出/请假模块实现过程
24.10 工资信息管理模块设计
24.10.1 工资信息管理模块概述
24.10.2 技术分析
24.10.3 工资信息管理模块的窗体设计
24.10.4 选择工资月份
24.10.5 查询工资信息
24.10.6 工资信息导为Excel表
24.10.7 修改工资信息
24.10.8 批量修改工资信息
24.10.9 过期工资处理
24.11 文件清单
24.12 小结
第25章 叶子图像处理专家
视频讲解:96分钟
25.1 需求分析
25.2 系统设计
25.2.1 系统目标
25.2.2 系统功能结构
25.3 系统运行环境
25.4 创建项目
25.5 启动窗体的设计
25.5.1 设计窗体界面
25.5.2 添加资源文件
25.5.3 代码注册Flash控件
25.5.4 调用Flash动画
25.6 主窗体设计
25.6.1 设计窗体界面
25.6.2 设计菜单栏
25.6.3 设计状态栏
25.6.4 窗体初始化
25.6.5 工具栏调用系统功能
25.6.6 打开图片
25.6.7 显示历史图片
25.6.8 撤销/重复执行
25.6.9 浏览大幅图片
25.7 图像旋转
25.7.1 图像旋转窗体的设计
25.7.2 使用二次插值法缩放图片
25.7.3 设置旋转角度
25.8 图像的剪切与合成
25.8.1 设计图像合成窗体
25.8.2 利用资源文件加载剪切光标
25.8.3 图像的剪切
25.8.4 选择合成方式
25.8.5 设置合成图片的坐标位置
25.8.6 图像的合成
25.9 设置图片大小
25.9.1 窗体界面设计
25.9.2 锁定纵横比率
25.9.3 调整图片的大小
25.10 “滤镜”窗体的设计
25.10.1 设计“滤镜”窗体界面
25.10.2 选择滤镜
25.10.3 图片预览
25.10.4 应用到主窗体图片上
25.11 滤镜算法
25.11.1 图像锐化算法
25.11.2 图像柔化算法
25.11.3 图像浮雕算法
25.11.4 图像扩散算法
25.11.5 图像轮廓算法
25.11.6 图像饱和度算法
25.11.7 图像亮度算法
25.12 运行项目
25.13 程序打包
25.14 开发中常见问题与解决方案
25.14.1 图像框中不显示输出图像
25.14.2 Win32系统错误处理
25.15 小结
附录A 代码编写规则
附录B VB内部函数
《精通Visual Basic:从入门到精通的全面指南》 前言 在快速发展的软件开发领域,Visual Basic (VB) 凭借其易学易用、开发效率高、功能强大的特性,一直占据着重要的地位。无论您是初涉编程的菜鸟,还是希望拓展技能栈的经验开发者,掌握Visual Basic都将为您打开通往广阔应用开发世界的大门。本书旨在为您提供一套系统、深入的学习路径,从最基础的概念入手,逐步引导您掌握Visual Basic的核心技术,并最终能够独立完成复杂、实用的应用程序开发。 本书内容涵盖了Visual Basic的方方面面,从开发环境的熟悉,到基础语法、面向对象编程,再到数据库应用、网络编程、界面设计以及项目部署等。我们力求以最清晰、最易懂的方式呈现复杂的概念,并通过大量的实例代码和实践练习,帮助您将理论知识转化为实际动手能力。本书不仅仅是一本技术手册,更是一本陪伴您成长、激发您创造力的编程伙伴。 第一部分:Visual Basic 基础与核心概念 第一章:Visual Basic 开发环境入门 1.1 Visual Basic 简介与发展 VB的历史沿革与核心优势 VB在不同应用场景下的地位 1.2 安装与配置Visual Basic 开发环境 详细介绍不同版本VB的安装步骤(例如:Visual Studio Community Edition) 设置项目工作区和个性化开发环境 1.3 认识Visual Studio IDE(集成开发环境) 菜单栏、工具栏、项目资源管理器、属性窗口、代码编辑器等核心窗口的功能介绍 学习如何创建、打开和保存Visual Basic项目 1.4 第一个Visual Basic应用程序:Hello World! 从创建一个简单的窗体应用程序开始 理解事件驱动编程模型:用户操作与程序响应 熟悉常用控件(如Label、Button)的添加与属性设置 编写简单的代码实现按钮点击后显示文本 第二章:Visual Basic 基础语法与数据类型 2.1 变量与常量 变量的声明、作用域与生命周期 常用数据类型:整型(Integer, Long)、浮点型(Single, Double)、字符串(String)、布尔型(Boolean)、日期型(Date)等 理解数据类型的选择对内存占用和性能的影响 常量的定义与使用,提高代码的可读性和维护性 2.2 运算符 算术运算符(+, -, , /, Mod, ^) 关系运算符(>, <, =, >=, <=, <>, Like) 逻辑运算符(And, Or, Not, Xor, Eqv, Imp) 字符串连接运算符(&) 赋值运算符 (=) 理解运算符的优先级与结合性 2.3 控制流语句 条件语句: If...Then...Else 语句:单分支、双分支、多分支 Select Case 语句:适用于多重选择的情况 循环语句: For...Next 循环:固定次数的循环 Do While...Loop / Do Until...Loop:条件判断的循环 For Each...Next 循环:遍历集合或数组中的元素 学习如何使用控制流语句实现程序的逻辑判断与重复执行 2.4 过程(Sub与Function) Sub过程:执行特定任务,不返回值 Function过程:执行特定任务,并返回一个值 理解过程的参数传递(ByVal vs. ByRef) 编写可重用的代码模块,提高开发效率 2.5 数组 一维数组、多维数组的声明与初始化 数组的访问、修改与动态数组(ReDim) 理解数组在存储和处理批量数据时的重要性 第三章:面向对象编程(OOP)基础 3.1 类与对象 理解类是对象的蓝图,对象是类的实例 属性:描述对象的特征 方法:描述对象的行为 构造函数与析构函数(在VB.NET中更常用,VB6中通过Class_Initialize/Terminate模拟) 3.2 封装 将数据(属性)和操作数据的方法捆绑在一起 访问修饰符(Public, Private, Friend)的应用 保护数据,防止非法访问,提高代码的安全性与模块化 3.3 继承 子类继承父类的属性和方法 实现代码的复用,构建类层次结构 3.4 多态 允许不同对象对同一消息做出响应 理解虚方法和重写(在VB.NET中更清晰,VB6中通过Implements实现接口来模拟) 3.5 VB中的面向对象特性 使用Class Module创建自定义类 实例化对象、访问属性、调用方法 通过继承和组合构建更复杂的系统 第二部分:Visual Basic 界面设计与用户体验 第四章:常用控件深入应用 4.1 文本输入与显示控件 TextBox:单行/多行文本编辑、密码输入、滚动条 RichTextBox:富文本编辑、字体、颜色、段落格式 Label:静态文本显示、自动调整大小 4.2 列表与选择控件 ListBox:单选、多选、添加/删除项 ComboBox:下拉列表,结合TextBox的编辑功能 ListView:更强大的列表显示,支持图标、详细信息视图 TreeView:层级结构数据展示 4.3 按钮与命令控件 CommandButton:触发事件,执行操作 CheckBox:布尔选项,状态切换 OptionButton (RadioButton):互斥选择 4.4 容器与布局控件 Frame:组织和分组控件 TabStrip / FolderView:多页面切换,组织复杂界面 PictureBox:图像显示与处理 4.5 导航与信息提示控件 Menu Bar / Context Menu:应用程序菜单 Timer:定时器,实现周期性任务 ToolTip:鼠标悬停提示信息 4.6 常用控件事件处理 Click, DblClick, MouseDown, MouseUp, MouseMove KeyPress, KeyDown, KeyUp GotFocus, LostFocus TextChanged, SelectedIndexChanged等 第五章:高级界面设计与用户体验优化 5.1 窗体(Form)的高级属性与事件 窗口样式、边框、标题栏 MDI(多文档界面)应用程序的设计 窗体加载、卸载、激活、非激活事件 窗口的拖动、大小调整、最小化、最大化、关闭 5.2 拖放操作(Drag and Drop) 实现文件拖放到应用程序,或控件间的拖放 理解拖放事件的流程与实现 5.3 图像与多媒体处理 在PictureBox中显示和操作图像 使用ActiveX控件或API函数播放音频和视频(在较新版本VB.NET中,可以使用内置的MediaPlayer组件) 5.4 消息框与输入对话框 MsgBox函数:显示信息、警告、错误,并获取用户反馈 InputBox函数:获取用户输入的简单文本 5.5 进度条与状态栏 ProgressBar:指示操作的完成进度 StatusBar:显示应用程序的状态信息 5.6 访问Windows API 理解Windows API的作用与调用机制 通过Declare语句调用Windows API函数,实现更底层的功能 示例:获取系统信息、控制窗口行为等 5.7 错误处理与异常捕获 On Error GoTo / On Error Resume Next 语句 使用Err对象获取错误信息 设计健壮的程序,优雅地处理运行时错误 使用Try...Catch...Finally块(在VB.NET中)进行更精细化的异常管理 第三部分:Visual Basic 数据管理与网络编程 第六章:数据库应用开发 6.1 数据库基础概念 关系型数据库模型:表、字段、记录、关系 SQL(Structured Query Language)语言入门:SELECT, INSERT, UPDATE, DELETE 6.2 数据访问技术 ADO (ActiveX Data Objects) / ADO.NET 连接数据库(ODBC, OLE DB) Command对象:执行SQL命令 Recordset对象(ADO)/ DataTable, DataReader, DataSet(ADO.NET):处理查询结果 数据绑定:将控件与数据源连接 DAO (Data Access Objects):适用于Access数据库 6.3 常用数据库操作 查询数据,显示在Listbox, GridView等控件中 添加、编辑、删除数据库记录 实现搜索和过滤功能 事务处理:保证数据的一致性 6.4 报表生成 使用Crystal Reports或其他报表工具集成到VB应用中 设计和生成专业格式的报表 第七章:网络编程基础 7.1 Internet与Intranet 网络通信的基本概念 7.2 Socket编程 TCP/IP协议:可靠的面向连接的通信 UDP协议:不可靠的无连接通信 创建客户端和服务器端应用程序 实现数据的发送与接收 7.3 Web编程基础 HTTP协议 使用Winsock控件或.NET的System.Net命名空间进行HTTP请求 获取网页内容 简单的Web爬虫应用 7.4 FTP文件传输 使用Winsock控件或相关库实现FTP客户端功能 上传和下载文件 7.5 电子邮件发送(SMTP) 通过SMTP协议发送简单的文本邮件 (高级应用可集成CDO等组件) 第四部分:Visual Basic 进阶与项目实战 第八章:文件操作与系统交互 8.1 文件与文件夹管理 使用FileSystemObject对象进行文件和文件夹的创建、复制、移动、删除 读取和写入文本文件 二进制文件操作 8.2 注册表操作 读取和写入Windows注册表信息 (注意:注册表操作具有风险,需谨慎使用) 8.3 系统进程与服务 获取当前运行的进程列表 (高级应用可了解如何启动、停止系统服务) 8.4 剪贴板操作 读写Windows剪贴板内容 实现文本、图像等在应用程序与其他程序间的共享 第九章:DLL与COM组件开发 9.1 DLL(动态链接库)的概念与作用 代码复用、模块化开发 9.2 创建和调用DLL 使用VB编写DLL(VB6支持) 在VB应用程序中调用DLL函数 9.3 COM(Component Object Model)组件 COM组件的优势:跨语言、跨进程通信 ActiveX控件的开发与使用 理解GUID、接口等概念 9.4 .NET Interoperability(VB.NET) 在.NET环境中调用COM组件 将.NET组件暴露为COM组件 第十章:项目部署与打包 10.1 应用程序打包 使用Setup Wizard或第三方工具(如Inno Setup, NSIS)创建安装程序 打包应用程序文件、依赖库、配置文件等 10.2 软件许可与注册 简单的软件注册机制设计 10.3 升级与卸载 设计应用程序的更新策略 确保应用程序能够被正确卸载 第十一章:综合项目实战 11.1 小型管理系统设计 例如:联系人管理、图书管理、订单管理等 从需求分析、数据库设计到界面实现、功能开发 11.2 数据报表与图表应用 集成图表控件(如MSChart, ChartDirector) 展示数据分析结果 11.3 实用工具类应用 例如:文件加密工具、系统信息查看器等 综合运用文件操作、系统交互等知识 附录: Visual Basic 常用函数速查表 调试技巧与常见问题解答 推荐资源与进阶学习方向 结语 本书的完成离不开您对学习的热情和坚持。希望通过本书的学习,您能够扎实掌握Visual Basic的开发技术,并自信地运用它去解决实际问题,创造属于自己的精彩应用程序。编程是一个不断探索和实践的过程,愿您在未来的开发旅程中,不断发现新的乐趣,取得更大的成就。