1. 如何实现托盘的动态图标?我试着在运行时更改图标,没报错,但没有效果,我考虑是不是没有刷新,但没法成功
2. 我在学习OCX编程时,当定义一个属性的类型是IPictureDisp。在设计时可以保留其属性值,一切正常。但一运行picture一片空白,终止程序,其属性值还在,怎么回事?

解决方案 »

  1.   

    Public Const NIM_MODIFY = &H1'这个来改变压入任务栏的图标的信息
    Shell_NotifyIcon NIM_MODIFY, myData
      

  2.   

    对于问题2,
    1、必须属性值记录到模块变量,例如m_pic,
    2、必须在 WriteProperties 事件中把它存入了PropertyBag,如  PropBag.WriteProperty "pic", m_pic
    3、必须在ReadProperties 事件从从PropertyBag中恢复了属性,如 Set m_pic = PropBag.ReadProperty("pic")
    如果这样做了以后还是看不到图象,那么可能你根本没有把图象显示出来,例如在 UserControl_Paint 中加入代码 UserControl.PaintPicture mpic, 0, 0,应该就可以看到了
      

  3.   

    To 5653325(等待开刃的刀) 
     我想实现象流光一样的动态任务栏,我试过NIM_MODIFY,但好象没有动画效果,我再试试
      

  4.   

    To kimurakenshin(浪客)
       [email protected], 3ks
      

  5.   

    to  kimurakenshin(浪客) 
        不行,你的哪个ocx实现了任务栏图标,但我需要的是任务栏图标动起来
      

  6.   

    图标放入托盘的代码我就不写了
    实现动画
    在FORM上加两个PICTUREBOX和一个TIMER控件,把需要的图标分别放到Picture中,Timer.Interval=500
    Timer的代码
    Private Sub Timer1_Timer()
        Static lngState     As Long
        If lngState = 0 Then
            nid.hIcon = Picture2.Picture
            lngState = 1
        Else
            nid.hIcon = Picture1.Picture
            lngState = 0
        End If
        Call Shell_NotifyIcon(NIM_MODIFY, nid)
    End Sub