大侠们:新的一年到来了,新的问题也来了。
我需要在窗体中制作一幅动态的图片(我是利用几组图片叠加产生旋转的效果),用到了Timer控件,Interval属性设置为10,运行时发现CPU占用率达到了100%,Interval属性改成100后,CPU占用率达到了50%左右,但这里图片的动态效果很不理想,达不到要求。请教各位,如何在使用Timer控件时,能够减少CPU占用率,或者利用其它的方法,也能使图片产生动态效果。(声明:网上没有找到我需要的相应的动态图片)在线急等。谢谢!!!

解决方案 »

  1.   


    关键问题是你在 Timer 事件中的代码是如何写的?占用 CPU 的是你的处理程序。你最好事先把处理好的图片存起来,比如在 ImageList 控件中,Timer 事件中仅仅更新显示。
      

  2.   

    代码如下:事先保存有5幅图片,从1到5
    Private sub Timer1_timer()
      Static i As Integer
      i=i+1
      picture1.picture=loadpicture("图片名称" & i & ".jpg")
    End Sub
    运行时CPU占用率达到100%
      

  3.   

    图片应该一次载入,多次使用
    Option ExplicitPrivate m_Pics(0 To 4) As IPictureDispPrivate Sub Form_Load()
        Dim i As Long
        For i = 0 To 4
            Set m_Pics(i) = LoadPicture("图片名称" & (i + 1) & ".jpg")
        Next
    End SubPrivate Sub Timer1_Timer()
        Static i As Integer
        i = (i + 1) Mod 5
        Set Picture1.Picture = m_Pics(i)
    End Sub
      

  4.   

    每次都现时读,又慢又用CPU,按猩猩们的指示办。
      

  5.   


    老鸟,你真是老鸟,我按照你说的改了一下代码,运行测试,如果Interval属性设置为10,CPU占用率仍然达到了75%左右;如果Interval属性设置为50,CPU占用率仍然达到了35%左右;如果Interval属性设置为100,CPU占用率仍然达到了25%左右.老鸟,我需要用到的是Interval属性为10的设置,但这个占用率还是高了点,所以请老鸟能不能帮我再想想办法,再次减少CPU的占用率呀,拜托,十分感谢!
      

  6.   

    这是一个flash mixer。
    http://www.soft14.com/Web/HTML_Utilities/All-into-One_Flash_Mixer_11084_Review.html
      

  7.   

    钟镇涛大哥,你既然能做出几张不同的静态图片,就可以用“Ulead GIF Animator 5”把它们连成GIF动态图片呀我苦恼的是我找不到GIF控件
      

  8.   


    不不不,老鸟,我不是想要求图片的清晰度或效果有多好,我只是设置在定时器事件里能让我的图片动起来就行,现在主要的问题就是CPU占用率太高了,我只想用什么办法能解决这个问题。不好意思,给你添麻烦了,老鸟。
      

  9.   

    谢谢老鸟及各位大侠,我决定不用时钟控件了,用gif图片去搞定。