我在窗体上创建了一个image的控件,
插入.GIF的图片.然后调用Move方法.在窗体上移动.
但是移动过程,image图片一闪一闪.
请问哪位仁兄有没有遇到这样的问题,怎样解决?
谢谢!

解决方案 »

  1.   

    换用picture控件,启用双缓冲,具体代码用google搜之
      

  2.   

    不用加载控件,定义一个变量,类型为stdpicture,如下
    dim pic as stdpicture
    dim mdc as long,bmp as long
    dim picDC as long
    dim brush as long在form load里添加代码
    dim rc as rect
    set pic=loadpicture(....)
    mdc=createcompatibledc(getdc(0))
    bmp=createcompatiblebitmap(getdc(0),form.width/15,form.height/15)
    deleteobject selectobject(mdc,bmp)
    setrect rc,0,0,form.width/15,form.height/15
    brush=getsyscolorbrush(me.backcolor and &HFFFFFF)
    fillrect mdc,rc,brushpicdc=createcompatibledc(getdc(0))
    deleteobject selectobject(picdc,pic.handle)定义一个函数,叫做MovePic
    private sub MovePic(byval x as long,byval y as long)
       dim rc as rect
       setrect rc,0,0,me.width/15,me.height/15
       fillrect mdc,rc,brush
       bitblt mdc,x,y,图象宽度,图象高度,picdc,0,0,vbsrccopy
       bitblt me.hdc,x,y,图象高度,图象宽度,mdc,0,0,vbsrccopy
    end sub在程序关闭时
    deleteobject brush
    deletedc mdc
    deletedc picdc
    set pic=nothing以上的api函数声明,RECt声明自己到VB带的API 浏览器里找吧,我机器上没有装VB,所以也没能调试
      

  3.   

    楼上这位仁兄,看不懂.
    我太菜了..
    .GIF的图片是透明的.
    所以移动起来,看不出来一个方框在移动..
      

  4.   

    image控件好象不支持gif动画的吧
    你用picturebox控件应该就可以,移动的时候画出背景
      

  5.   

    picturebox也不支持gif动画,我上面说的是对于静态gif
      

  6.   

    用双缓冲就不闪了 主要就是在窗体上放入两个PICTUREBOX控件 然后用BITBLT 拷贝就行了