利用VB2005制作颜色渐变的进度条
来源:互联网 发布:java实现登陆注册 编辑:程序博客网 时间:2024/06/05 15:39
现在Windows环境下的应用程序经常要用到进度条,用以指示出一些复杂进程的运行状态。目前我们在窗体设计时,使用的都是单色进度条。本文讲述在WindowsXP环境下,使用VB2005制作一个漂亮的颜色 渐变的进度条组件。
一.技术细节
这种进度条的显示相当于使用许多颜色相近的“ 画笔”在窗体上绘制方框。这些“画笔”就相当于一个画笔数组。首先要建立颜色数组 ,初始的时候放入一些颜色值,然后根据平滑度的设置来重新设置颜色数组。依次取出颜色数组中两个 相邻的颜色值,计算这两个颜色经过混合后的颜色,再放入到两个颜色的中间。例子中颜色数组中有8种 颜色。平滑度的值从0开始循环,最高是7。每经过一次循环,颜色数组中就增加了一些过渡颜色。平滑 度设置的越大,则颜色过渡的越柔和。产生的效果越漂亮。颜色数组生成之后,画笔数组就确定了。它 的大小和颜色数组一致。有了画笔数组,下面的问题就是在窗体上进行绘图操作了。
二、实现原理
在绘图操作之前。所以要重载基类中的窗体的消息处理事件WndProc,窗体大小变化事件 OnResize和窗体重绘事件OnPaint。加入以下属性设置:
Minimum。表示进度条的最小值。默认是 0 。
Maximum。表示进度条的最大值。默认是 100 。
Value。表示了进度条的当前值。默 认是 0 。
Smoothness。表示了进度条颜色渐变的平滑度。默认是 0 。
在初始化的时候 ,设置了以上四个属性后,相应的画笔数组产生了。当前值的每次改变都要触发OnPaint事件。触发事件 后,首先绘制进度条的外部边框,接着得到内部边框的总宽度和高度。根据当前值,最小值和最大值计 算完成百分比,由完成百分比乘以总宽度得到当前值占用的宽度。总宽度除以画笔数组的个数得到每个 画笔所占用的宽度。然后就是从初始宽度循环到当前值占用的宽度,从画笔数组中依次使用画笔按照每 个画笔所占用的宽度和高度填充颜色。循环结束后,如果百分比为100。则使用画笔数组中的最后一个 画笔绘制颜色。进度条显示完毕。
鱼台论坛http://bbs.370827.org/thread-5725-1-1.html
- 利用VB2005制作颜色渐变的进度条
- Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
- Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
- Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
- Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
- 自定义带有渐变颜色的进度条
- 自定义渐进和渐变颜色的进度条
- Android:动态设置颜色渐变的进度条
- Android进度条ProgressBar颜色的渐变设置
- 颜色渐变进度条
- Qt制作的动态颜色渐变表盘
- 【ps】制作字体上的渐变颜色
- Android环形颜色渐变进度条
- 带颜色渐变效果的的矩形进度条
- iOS实现一个颜色渐变的弧形进度条
- iOS实现一个颜色渐变的弧形进度条
- iOS实现一个颜色渐变的弧形进度条
- android绘图---绘制颜色渐变的圆圈进度条
- UI控件的位置操作
- Python系列视频教程: Django【13讲】第12讲 数据展示
- 大发光火前提是空间党和国家是个好萨格拉斯的看得开
- [Hnoi2013]比赛
- Xdebug 2中文手册翻译CHM版
- 利用VB2005制作颜色渐变的进度条
- 应用ExcelPackage导出Excel
- tarコマンドで解凍・圧縮するlinux一覧まとめ(gz、zipなど)
- 解决Sqlite Developer过期
- Common Intents
- java基础加强--JavaBean和内省Introspector
- VB.NET 2008窗体应用技巧
- 关于数组_1
- Machine Learning Foundation Lecture 04 Feasuibility of learning 学习笔记