Private Sub Command1_Click()
Picture1.BackColor = 0: Picture1.ForeColor = RGB(0, 255, 0)
Timer1.Interval = 1: Timer1.Enabled = True
End SubPrivate Sub Timer1_Timer()
    Static i As Long
    Picture1.Cls
    Picture1.CurrentY = i * Screen.TwipsPerPixelY Mod Picture1.Height
    Picture1.CurrentX = Picture1.Width \ 2
    Picture1.Print "觉得我闪烁么"
    i = i + 1
End Sub这样,运行后有比较明显的闪烁感,有啥好办法让他不觉得闪烁呢?? 

解决方案 »

  1.   

    双缓冲,画到不可见的一个picture里,然后复制进前台picture
      

  2.   

    我刚才研究了下画到hdc里,然后再一起BitBlt到picture里,结果居然闪烁的比以前感觉还厉害
    实在没办法了,我清空用的是刷子,全刷底色,或者用picture.cls,2种都闪,难道vb里就没不闪的办法么?
      

  3.   

    别放在TIMER的事件里面啊
    用别的事件
      

  4.   

    设置Picture1.autoredraw=true,不就不闪了吗
      

  5.   

    autoredraw太消耗资源了吧
    如果我是用drawtext直接画到me.hdc上的话,怎么办呢? 设置me.autoredraw=true就没有显示了
    有没有更好点的办法啊
    Picture1.autoredraw=true是不怎么闪了,就是这个很浪费资源啊
      

  6.   

    采用渐进刷新的方式 就不闪了,你看过 wow 地图刷新么,它是逐块显示的,