说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用VB做个漂亮的进度条

HTML文档下载 WORD文档下载 PDF文档下载
用VB做个漂亮的进度条

  一切都在变,就连进度条这个小东西也在发生着变化,由以往的单色形式变成了现今更加亮丽的过渡色形式甚至更为复杂漂亮的形式,给软件也增添了不少色彩。我在这里要告诉各位制作一种非常简便实用的制作方法:
  一、实现原理
  采用一个完整的图片来作为进度条,每次当进度条改变时,采用先贴图再用背景色擦去不需显示的一段进度的方法来实现进度条的变化,可实现制作任何复杂美观的进度条。
  二、准备工作
  首先需准备一个如下图样式的进度条图片(当然你可以做你自己喜欢的样式)。然后在窗体中加入一PictureBox控件,属性设置如下:
AutoSize:True
Appearance:Falt
AutoRedraw:True
ScaleMode: Pixel
Picture:″准备的图片″
  再加一辅助控件(只用于保存图片,方便快捷地使用进度条)Image,属性设置如下:
  Picture:″准备的图片″
  Visible:FALSE
  说明:本文所讲的进度条并不是狭义上那种安装程序中常见的仅表示一个事件进程的进度条,而是把那些条形的,表示一个量的大小的图示统称为进度条。以此概念为基础让我们先来看看它的一些用途和类别,然后给出各类进度条的实现。
  进度条的用途:
  ※在一般软件中表示执行进度
  ※在多媒体播放器中表示音量大小、频率节奏的变化…
  ※在游戏中表示角色的能量、生命值…
  进度条的分类:
  由以上用途可知,进度条大体可分为两类
  第一类:自动变化的进度条(如安装程序中的进度条)
  第二类:可由用户操作的进度条(如音量调节)
  以下是两类进度条的代码。
  实现第一类的方法:
  Const MaxValue = 100
  Const MinValue = 0
  Dim Gene As Single
  Dim ProValue As Single
  Sub InitData()
  Gene = Picture1.ScaleWidth / (MaxValue - MinValue)
  End Sub
  Sub SetProBar(value As Single)
  Dim X As Single
  ProValue = value
  If ProValue > MaxValue Then
  ProValue = MaxValue
  Else
  If ProValue < MinValue Then
  ProValue = MinValue
  End If
  End If
  Text1.Text = ProValue
  X = (ProValue - MinValue) * Gene
  With Picture1
  Picture1.Picture = Image1.Picture
  Picture1.Line (X, 0)-(.ScaleWidth, .ScaleHeight), vbWhite, BF
  End With
  End Sub
  以上是实现第一类进度条的全部代码,它有相当的独立性,不管你准备的进度条有多长,此代码都可无须改变而应用于你的系统中。其中,MAXVALUE、MINVALUE为此进度条所表示的最大最小值,可由实际应用而定。
  PROVALUE 为当前的进度值,可由它得到当前值,以便处理。
  SETPROBAR 为实际使用的过程,在软件中通过调用此过程来改变进度条的长度。VALUE 的取值为 MINVALUE~MAXVALUEINITDATA 是初始化进度条长度和实际要表示的范围的比例因子,在软件中首先要调用此过程完成初始化工作。
  第二类实现方法:
  要实现此类进度条,只需在第一类的基础上再加上响应用户操作的部分即可
  具体所加代码如下:
  Private Sub picture1_MouseMove(Button As Integer, Shift As Integer, X As Single,Y As Single)
  If Button = 1 Then
  Picture1_MouseDown Button, Shift, X, Y
  End If
  End Sub
  Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single,Y As Single)
  If Button = 1 Then
  ProValue = Int(X / Gene + MinValue + 1)
  SetProBar ProValue
  End If
  End Sub
  应用示例:
  建一工程,然后加入下列控件,并写入所示代码即可。
  控件:两个PictureBox,组成控件数组(属性设置如上)但:picture1(0)的BorderStyle:None
  两个Label,组成控件数组并分别以与自已Index 值相同的PictureBox为父控件(只需把Label绘在或粘贴在相应的PictureBox上即可)属性:
  AutoSize:True
  Alignment:Center
  BackStyle:Transparent
  Label(1): Caption:″当前音量0″
  Enabled:False
  Label(0): Caption:″0%″
  一个Timer:属性:Interval:50
  三、实例
  一个自动的进度条和由用户控制的进度条。
  Option Explicit
  ′如果有多个进度条且表示值的范围不同
  ′则可设立一组范围值,最好能通过INDEX
  ′值同自已的进度条建立对应关系,以方便处理
  Const MaxValue = 100
  Const MinValue = 0
  Dim Gene As Single
  Dim ProValue(1) As Single
  ′生成比例因子,必须首先执行
  Sub InitData()
  Gene = Picture1(0).ScaleWidth /
(MaxValue - MinValue)
  End Sub
  ′根据当前进度值设置进度条,INDEX指出是哪个进度条的值
  Sub SetProBar(value As Single, Index As Integer)
  Dim X As Single
  Dim BkColor As Long
  ProValue(Index) = value
  ′对当前进度值超出范围的处理
  If ProValue(Index) > MaxValue Then
  ProValue(Index) = MaxValue
  Else
  If ProValue(Index) < MinValue Then
  ProValue(Index) = MinValue
  End If
  End If
  ′在存在多个进度条时分别设置各进度条的不同文本
  Select Case Index
  Case 1
  Label1(Index).Caption = ProValue(Index) & ″%″
  Case 0
  Label1(Index).Caption = ″当前音量″ & ProValue(Index)
  End Select
  ′计算出当前进度值所对应的进度条位置
  X = (ProValue(Index) - MinValue) * Gene
  With Picture1(Index).Picture = Image1.Picture
  ′把当前进度值所对应的进度条位置之后的图片用白色盖住
  ′它是此法实现思路的核心
  Select Case Index
  Case 1
  bkcolor = vbWhite
  Case 0
  bkcolor = vbMenuBar
  End Select
  Picture1(Index).Line (X, 0)-(.ScaleWidth, _ .ScaleHeight), bkcolor, BF
  End With
  End Sub
  ′首先初始化比例因子
  Private Sub Form_Load()
  InitData
  End Sub
  ′在用户操作INDEX为0的进度条时的响应
  Private Sub picture1_MouseMove(Index As Integer, _
   Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = 1 And Index = 0 Then
  Picture1_MouseDown Index, Button, Shift, X, Y
  End If
  End Sub
  ′根据当前鼠标坐标的X值(进度条若为纵向则使用Y值)
  ′计算出所对应的当前进度值,然后设置进度条
  Private Sub Picture1_MouseDown(Index As Integer, _
   Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button = 1 And Index = 0 Then
  ProValue(Index) = Int(X / Gene + MinValue + 1)
  SetProBar ProValue(Index), Index
  End If
  End Sub
  ′在演示中以定时器定时设置进度
  ′实际使用时当然是按事件完成的
  ′百分比来设置进度
  Private Sub Timer1_Timer()
  Static curval As Single
  SetProBar curval, 1
  curval = (curval + 1) Mod MaxValue
  If curval = 0 Then
  curval = MinValue
  End If
  End Sub
(河南 李捷)

手势才是王道:3款应用捕获3个设计灵感 YouTube的挑战者 JustinTV教你如何打造实时视频网站 黑客挟持160万用户密码 抗议联合国监管互联网 Twitter面对危机火速上线照片滤镜产品 Nike推创业孵化器:每个参与团队获2万美金 傲游发布云浏览器 支持跨终端数据同步 12个git实战建议和技巧 用友UAP产品线总设计师史周军访谈录 IE10新功能解析 支持Media Query(图) 单页Web应用或引领下一代Web新趋势? [CTO俱乐部第89期]新时代的前端开发 [多图]160台Mac mini打造的数据中心机架 是谁动了我的CPU! 欧朋CEO:GPU加速是手机浏览器的新趋势 TOP30专访:Splashtop研发中心总经理Alex Xu 2012Q3国内App开发者半数以上入不敷出 细微之处见真章 为什么要在try-catch-finally里加大括号 独立开发者:面对攻击就要“脸皮厚+更自豪” IBM纳米光子芯片对付大数据 单个通道25Gbps AWS数据仓库服务Redshift是最好的选择吗? 又赚了一笔:微软向两公司收取Android专利费 深度解析:Android4.2系统“应用验证服务” 欧洲移动游戏大会:五大行业趋势 大揭秘:Windows Phone 8 键盘输入的8个设计精髓 朝鲜:探寻最神秘的移动互联网王国 如何让IE 10玩转响应式网站 Windows Server 2012:令CIO激动的三个新特性 高德和新浪微博战略合作 打通账号互调数据 乐观锁和悲观锁 你更钟情于哪一个? Apple索30%分成 iOS版微软SkyDrive更新搁浅 [简讯] Linux 3.7发布 开源图形卡驱动程序 数据结构和C++ songzx66版竹去哪了?有为版竹无辜删除帖子,你为什么不管? 插入数据到数据表中,SQL SERVER中只可以用查询分析器吗?我想用企业管理器来实现,有什么方法吗? 考程的优秀参考书,观者有份! 请管理员出面解释! 是谁向我要树型菜单代码的? IT生涯 求助 请有兴趣的人们评价一下B.Strostrup的TC++PL吧。 请问一个问题?? 高手来啊高手来!怎么把高手的数据库放到treeview里面去? 删不掉SQL server怎么办啊? EXCEL工作表的页码问题 帮忙一下:多开几个线程同时发送数据能提高网络传输速度吗?通过internet,用TCP/IP 关于和AUTOCAD R14或2000的支持!向高手请教! 我们与外国人的不同之处 碰到一件奇怪的事情,不知怎么会事,真让人着急 Windows server 2003支持红外接口吗? 将*.html文件转为*.txt文件之后为什么打不开文本啊!! 虚心请教!!! 水园版竹为何封杀本王账户? 如何从QQ信息报文中得以其中的QQ号码呢? Install Shield安装问题 asp取本页面的text筐中的数据 datagrid控件在绑定了一个数据源dataset后,当dataset中的内容改变后(数据结构发生变化) 请帮忙推荐一款电子阅读器` 用ATL作的控件属性保存问题非常有趣来看看吧 请问access里的自增变量的值是什么类型的? 请各位帮忙! 请问一个问题?? 1、媒体播放速度不正常;2、怎样支持多语言? 我的困惑 關于SQL SERVER連接的問題 datagrid中用超链列传递参数出现的问题????waiting。。。。。 IBM有没有提供B/S的DB作示例供下载? 将*.html文件转为*.txt文件之后为什么打不开文本啊!! 虚心请教!!! 众爱卿可还记得本王吗? 如何根据身份证信息提取生日信息?求相关SQL语句 高分请教WIN2000中超难问题(分不够可以加)! 一个.h及.c可以被两个Project共用,不过我想在另一个Project中更改,但有时会出现提示"不能存储"等,有时.h文件被自动删除..怎么办? 怪现象:Windows 还未启动就黑屏 关于CRecordSet的问题 很菜的问题,希望不要见笑! 关于cookies的问题, 请教各位了. 很急!!!!!! 我日,天天见鬼,我用wsdl做了个webservice的代理类,把文件包含到webapplication中,debug的时候竟然说namespace System.Web.Services 本王对ISharp版竹表示最遗憾的同情和失望 哪位大哥能解决VB打开picture对话框时---蒸发的问题? 为什么我用jsp访问不到bean的属性???[100分,在线结帖] 为什么要“导入COM对象到.Net”? 请问我是不是被攻击了? 求这样的SQL语句,我脑子转不过来了。 请问各位大侠,如何在WIN2000下重启计算机。 世上本无事,庸人自扰之,这句话还有没有上下文, 平抛运动的合速度方向会是竖直吗?如题,物体在水平方向始终有速度,那么在不计空气阻力的情况下,最终物体的竖直分速度远大于水平速度,因此可以近似看作物体的合速度为竖直方向,这样想 看图形找规律:△□○△□○△□○△□○.第58个是什么图形? 什么样的课是优质课 平抛运动 垂直速度与质量有关吗Vy=gt 这条公式里面的g跟质量有关吗 是Vy=mgt吗?参考答案直接Vy=gt 而我们老师写的是Vy=mgt 有一个木棍,有三种刻度线,第一种把木棍10等分,第二15等分,第三20等分,可以锯几段?(包含于排除法) 新课程标准下优质课该怎么评——观摩浙江省思想政治优质课评比活动有感 在盐水中盐占盐水的1/12,在40克清水中,应该加入()克盐 有一根长棍上,有三种刻度线,第一种刻度线将木棍分成十等分,第二种刻度线将木棍分成十二等分,第三种刻线将木棍分成十五等分,如果沿每条刻度线将木棍锯断,这木棍总共被锯成了几段? 哪里可以小学数学优质课观摩 用夹逼定理证明lim (sin nx)/n=0n趋于无限大.对任何实数x均成立. “两个自己喜欢的只能选择一个,放弃一个.”跟这句话相近的名句有吗?” 100万有多大——东庐中学周晓燕—初中数学优质课观摩课集锦. 人小(XXXX)学浅前后与中间、后面都是成语 在一根木棍上刻有三种刻度线,分别将木棍分成十等分,十二等分,十五等分.沿每一条刻度线将木棍锯断,共几段? 世上本无事 庸人自扰之出自何处世上本无事 庸人自扰之出自哪里 用含盐分别为百分之16和百分之40的盐水混合成含盐百分之32的盐水624千克,需含盐百分之四十的盐水多少千克?快 急 过中不至,太丘舍去中舍的成语(两个以上) 世上本无事庸人自扰之出自哪里,谁说的? 平抛运动中,什么是竖直分速度与水平分速度?怎么样理解 竖直方向的运动的速度在改变啊.那么竖直分速度是算平均速度,还是落地竖直的即时速度. 为什么明星都在北京安家? lim x趋于无穷,xsin(2x/1+x^2)= 现将含盐率百分之16和百分之40的两种盐水混合后成百分之32的盐水312kg,需要含盐百分之16的盐水几千克? 北京京城安家房地产是骗子么今天找房子!看到龙博有个很好的房子,当时都谈好了!晚上忽然打电话说价钱要涨,有催要年付,不知道公司是不是骗子!我是说是不是骗人住几天然后卷款跑的骗子! 试说明多项式(4x²-3x+1)+(4x²-3x+2y²)—(8x²—6x+2y²)的值与x的值无关.马上,说的出原因, 把含盐分别为百分之十六和百分之四十的盐水混合成含盐百分之三十二的盐水312千克,那么需要含盐百分之四十的盐水多少千克? 请帮我取个好听又好记的英文名,谢谢我的名字李禹萱,91年的,想找个好听的英文名字,写起来也挺好看的!谢谢! 将中文翻译成英文 一个活泼开朗的女生,我的身高是班里女生中倒数,我们几个每天在一起玩,这就是我. 攀登作文600字 为什么平抛运动的飞行时间由竖直高度决定RT 再有 其实水平位移的时间也是等于运动时间的为什么规定由竖直高度决定?纠结啊 急需一篇作文,关于“假如你是一个班主任,怎么管理班上” 写“攀登”的作文600字以上 平抛运动中水平速度不变,竖直速度变大,那和速度怎么变啊刚上完这课还有点晕...比如说一个小球以V0平抛撞在一个有倾斜角的斜坡上,求撞击的速度,我看到是用初速度和倾斜角算的.可竖直方 我想明天的男子四百米接力赛将是激动人心的 用英语翻译 求作文【攀登路上】要求绝对高分作文!语言精辟,无错别字,内容新颖! 以攀登为题的作文!急内容以“攀登”为话题;字数500字左右;写登山后的感受、或人生观... 物体在倾角为45°的斜面顶端水平抛出,做平抛运动,什么时候水平位移会等于竖直位移? 求作文《攀登》.30分求作文以攀登为主题,600字,注意:要求从社会阴暗面写(即写某些人为了利益不择手段) 两种通信模式(Ad hoc mode和Infrastracuture mode)的区别是什么? 我将会很想念他就像想念你一样 英文怎么说 不要机器翻译 他们每年都在美国举行一次汉语比赛 用英语怎么说? 英语翻译sorry,我没说清楚,是2万个英文字母,请帮忙回答下 Sade leapt to fame with the ___ of her debut single Your Love Is King.(5 分)A.productionB.issueC.emissionD.release lim x趋向于无穷 (1+2x)^1/x=?,为什么 水浒传中哪些人义薄云天 “就那么一瞬间,我爱上了你” 用英文怎么说? 求lim x趋向于无穷{1+(1/2x)}^-x ? 我国四大名著中,义薄云天,知恩图报的人是谁 "全世界都知道我爱上了你” 用英文怎么说? 平抛运动的合速度方向为什么是不断变化的呀,对于水平方向的速度一直是水平方向的,对于竖直方向的速度也是一直朝着竖直向下的方向呀,为什么合速度时就会不断变化方向呀,合速度方向难 白XXXXX 亚XXXXX 男XXXXX 我XXXXX 爱XXXXX 你XXXXX 爱情表白诗我要诗 课前演讲该讲些什么呢我们每天有一个课前演讲 快到我了 该讲些什么呢 有意思点的话题 不要太无聊 最好是比较新的 轻松一点的 最好是可以引起共鸣的东西 毕竟我们是90后么 义薄云天中的薄字是什么含义 第四题求解,五题用导数过程怎么写 (土旷可益垦辟,民稀可益招徕,何废郡之有?乃案视图记得汉召信臣陂渠故迹)de翻译 求小学体育优质课三、四年级说课稿内容要新颖一些,最好带课件,有的发下,没有可以指导一下也可以... 求第12题导数步骤 什么样的课才是优质课 平抛物体运动的竖直分速度为什么是 v=gt 初中英语没学,高中了怎么办 今起杭州地铁1号线周末末班车延迟至2楼盘装饰柱挡业主家窗户 屋顶外沿成小外交部对“世维会”质疑“10·28”男同事抽烟20多年对面办公桌女同事查美前高官督促安倍 克制“拜鬼”美医改网站频瘫痪奥巴马承诺负全责俄突击检查战略核力量智利沿海发生6.6级地震 圣地亚哥房加拿大首设比特币自动提款机“美丽中国”大型图片展在莫斯科举行吸烟让你变丑:双胞胎脸部皮肤对比作证解决伊核问题需要信任和耐心纽约规定21岁以下禁买烟普京治下的“俄式反腐”值得借鉴斯诺登最新照:在莫斯科乘游览船 未戴默克尔遭美国监听 德议员称斯诺登愿协孟建柱会见乌兹别克斯坦总统并主持中乌铁腕普京突击检查俄军核战备以色列攻击叙利亚军事基地 目标是俄制斯诺登莫斯科生活照曝光:休闲打扮未戴联合国称叙利亚完成对化武生产设施功能24小时卖场资讯章子怡汪峰恋情升级家居业回暖 红星美凯龙大卖德国黑红两党就正式启动政府组阁谈判达孟加拉国外长将于10月19日访华哥哥江城看望弟弟顺手买福彩 兑奖当天泡沫不是一般大“美丽天津?一号工程”建设动员部署会行业资讯“清新空气”行动重拳防控大气污染 保先见之明 为何不明推荐项目荣获2013欧洲金融“陶朱奖鼠标一点,抢购“跳楼价”小轿车王长田成中国文娱首富 明星无人上榜货基开通微信T+0实时赎回经济学家刘胜军: 应鼓励民间资本设立天津实施“清水河道”行动 提升城乡水天津义务教育迈向高水平均衡 区县全部发行彩票是向公众 推销机会和希望它胃口很大,国美苏宁压力更大
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘