注册 登录
编程论坛 VB6论坛

在VB的picture控件里面放置1000个shape控件,让这些控件的颜色渐变,老是闪,怎么避免 30毫米扫描一次,老是闪,有什么办法能让其不闪吗

huangjunxing 发布于 2017-07-01 22:47, 1315 次点击
在VB的picture控件里面放置1000个shape控件,让这些控件的颜色渐变,老是闪,怎么避免
30毫米扫描一次,老是闪,有什么办法能让其不闪吗

dim a as Integer
Private Sub Timer1_Timer()'30毫米扫描一次
dim i as integer
a=a+1
For i = 0 To 1000
Shape1(i).FillColor = a
End If

Next i
end sub
更多 0
1 回复
#2
风吹过b2017-07-01 23:13
这种操作,肯定闪的。
vb 控件的操作,属慢速操作,在 30毫秒 里应该是完成不了这 1000 个控件的操作。
你应该使用绘制图形的方法。
有二种实现方案
1,纯vb。在后台picture中,使用 link 命令绘制矩形并填充。整体绘制完成后复制到前台来。
2,使用 api 绘图,如 dx,gdi+ 等,这部分我不熟。

纯vb代码里,还有更快的方法,但涉及到多线程以及bmp数据格式等技术,更复杂,百度也没找到多少可供参考的资料。
1