***怎样让移动图像显示更快一些*** Hide Controls When Setting Properties to Avoid Multiple Repaints Every repaint is expensive. The fewer repaints Visual Basic must perform, the faster your application will appear. One way to reduce the number of repaints is to make controls invisible while you are manipulating them. For example, suppose you want to resize several list boxes in the Resize event for the form: Sub Form_Resize () Dim i As Integer, sHeight As Integer sHeight = ScaleHeight / 4 For i = 0 To 3 lstDisplay(i).Move 0, i * sHeight, _ ScaleWidth, sHeight Next End Sub This creates four separate repaints, one for each list box. You can reduce the number of repaints by placing all the list boxes within a picture box, and hiding the picture box before you move and size the list boxes. Then, when you make the picture box visible again, all of the list boxes are painted in a single pass: 在vb中用move方法移动图片时,速度有些慢,当图片很大时,这时可以用下面的方法: Sub Form_Resize () Dim i As Integer, sHeight As Integer picContainer.Visible = False picContainer.Move 0, 0, ScaleWidth, ScaleHeight sHeight = ScaleHeight / 4 For i = 0 To 3 lstDisplay(i).Move 0, i * sHeight, _ ScaleWidth, sHeight Next picContainer.Visible = True End Sub Note that this example uses the Move method instead of setting the Top and Left properties. The Move method sets both properties in a single operation, saving additional repaints.
创新互联主要从事网站建设、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务石阡,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
这个应该可以试试spy++,检测下鼠标移动到的device,然后做出文件操作!
给你提供一个思路,
你既然知道BITBLT,基础不会太差的,我就简单明了的说下.
从你的问题看,最简单的方法,其实只需要一个picturebox.
然后定义一个4*3的Image数组img(3,2).横4纵3.
img(0,0)装入第一张图片,
img(1,0)装入第二张图片,
img(3,0)不使用.
以此类推,img(3,1)也不使用,
####但是,img(3,2)虽然不装入图片,
####其功能却和你思路中的"没图片的picturebox"相同.
我们可以定义两个变量x
,
y
As
Integer
初始的时候x=3,y=2,应该看出来了吧?这两个变量用来保存空白image的位置,方便你移动图片.
有了这种结构,剩下的工作就很简单了.
写一个方法来处理按键消息.例如:
如果此时x=1,y=1,用户按下了"上键",那么img(x,y)和Image(x,y-1)交换.然后y=y-1
如果此时x=1,y=1,用户按下了"左键",那么img(x,y)和image(x-1,y)交换.然后x=x-1
其实就是移动空白位置的方法.但是要注意,img(3,0),img(3,1),img(3,2)这三个特殊位置要做特殊处理.
最后,写个for循环,把img数组显示到picturebox上面就可以了.
很简单吧?不知道我说得是否清楚?
希望对你有所帮助.
不是语言让图片动起来的,而是图片本身就能动,例如gif格式图片本身就是动画。如果你讲的是图片在网页上移动,而不是图片本身内容的动作,那么不是vb.net的功能必须用java脚本来实现。
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1.BackgroundImage = My.Resources.a
End Sub
Private Sub Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter
Button1.BackgroundImage = My.Resources.b
End Sub
Private Sub Button1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseLeave
Button1.BackgroundImage = My.Resources.a
End Sub
End Class
当然,你先得制作两张大小一样的图片