与一般的进度条不同 ,
1。外壳长度与内体长度之间是没有约束关系的 ,唯一的联系是内体的长度的最大值等于外壳长度
2。内体使用专门做好的素材,利用paint方法,填充内体
3。内体移动的精度比一般的进度条要高得多 ,进度条的精度是1% 而这里要求最好能到0。05%
4。内体的颜色变换 ,是通过切换素材图得到。
我对这个过程的关键技术无法理解, 请好心的高手帮我讲解一下这个代码。
Pic1.BackColor = tmpPic.Point(3, 3)
Pic1.Line (1, 1)-(Pic1.ScaleWidth - 2, Pic1.ScaleHeight - 1), tmpPic.Point(1, 1), B
Pic1.Line (2, Pic1.ScaleHeight - 1)-(Pic1.ScaleWidth - 2, Pic1.ScaleHeight - 1), RGB(50, 45, 50)
Set m_Font = Ambient.Font
End Sub
这里 tmpPic 是用来存放素材图片的,pic1是做内体框架的
我朋友的样本基本实现了 用素材图填充内体的功能。
但是 我现在最关注的问题是 ,怎样达到需求的精度。
这么小的单位啊,那你的一个像素必须对应一个0.05%,那要多长啊?
上面的画线怎么是三角的两条边?你的进度条不是长方形的吗?
这个精度不知道是什么意思
一个长度为一百像素的进度条每填充一格为一像素,它的精度就是1%
那如果一个长度为一万像素的进度条,每填充一格为一像素,那它的精度不就是0.01%吗?
显示的最小单位为一个像素啊,你不可能真的画一个一万像素的进度条来达到 0。01%的精度
只能说你用一个数记最大值,一个数记最小值,一个数记当前值,就像通用的进度条一样,但是做填充时你也只能最小画到一个像素,所以不存在这种精度显示
精度不行就用double记录,画的时候就老老实实的int一下
如果说以一个100像素长度的条定义1万的最大值的进度,那么万分之一个值为0.01%的精度,但是怎么画这个刻度?0.01个像素?可能吗?