我在piturebox中放了一个image空间,上面有一张汽车图片,用timer控制他的top和left,让他移动,模拟一个汽车运动,但是画面有忽闪忽闪的,感觉不稳定.,我用的图片是gif格式的,请问模拟汽车运动有没有更好的解决办法.十万火急,谢谢了.

解决方案 »

  1.   

    放置“透明”的图片在 VB 中,如果你试着把一只有鸟的图片放到背景的一棵树上,你就会发现树会被鸟遮
    住一个矩形的区域(即鸟的图片矩形)。我们可以通过以下方法使图片上非鸟的其它部
    分变透明:我们可以利用一个 WinAPI 函数 BitBlt 对图形进行一系列的位操作来达到
    此目的。
    函数声明: 
    Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, _
    ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _
    ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, _
    ByVal ySrc As Long, ByVal dwRop As Long) As Long
    参数解释: 
    目标环境:hDestDC——目标设备环境;x——左上角;y——顶端;nWidth——宽;
    nHeight——高
    源环境:hSrcDC——源设备环境;xSrc——源左上角;ySrc——源顶端; 
    dwRop——位处理操作,如 vbSrcAnd;vbSrcAnd;vbSrcCopy;vbSrcErase;
    vbSrcInvert 等 
    (目标环境或源环境只能是 Picture, Form 或 Printer 对象。各单位为象素。) 
    进行处理之前,我们需要对鸟的图片进行处理:先复制一份相同的图形,将其应该透明
    之处(鸟的背景)设置为黑色(设此图为sPic),再将另一图做以下处理:要复制的地
    方(鸟)设置为黑色,其余地方设置(鸟的背景)为白色(设此图为Mask)。 
    设树的图形为名dPic。 
    最后,请加入以下代码: 
    R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,Mask.hdc,0,0,vbScrCopy) 
    R=BitBlt(dPic.hdc,0,0,sPic.Width,sPic.Height,sPic.hdc,0,0,vbScrInvert) 
    后记: 
    1、VB 中的 PaintPicture 方法提供类似功能,但速度不及此方法; 
    2、在此方法上稍微加入一些代码,就不难实现动画的显示。 
    3、VB 例子中的 CallDlls 就使用此方法。
      

  2.   

    作成动画后使用animation控件试试
      

  3.   

    to  starsoulxp(星魂.NET)
    我的图片是透明的.现在在静态情况下图片就是一个汽车轮廓,没有边缘,我问的问题是用时钟移动左上边距是图象有抖动,而且有时特别厉害,不知有何解决办法.望高手门留下一些基本代码
      

  4.   

    picturebox里放置再放一个picturebox,里面这个picturebox装载图像,再试试
      

  5.   

    rainstormmaster(暴风雨 v2.0) 
    双缓冲如何做啊,