用timer来改变图标以实现动画就行了,比如有四个图标,放到窗体的picture(0)-picture(3)中,再放一个pic,然后用类似下面的代码来实现动画效果: Private Sub tmrIcon_Timer() Static p As Integer If p < 3 Then p = p + 1 Else p = 0 End If With nidProgramData pic.Picture = Picture1(p).Picture .hWnd = pic.hWnd .uId = 1& .hIcon = Picture1(p).Picture .szTip = "...." & Chr$(0) End With Shell_NotifyIcon NIM_MODIFY, nidProgramData End Sub
所谓动画,其实就是不断更换图片,比如 Task Manager,动态显示 CPU 使用率,其实就是几个图片来回换(打开它的资源一看就明白了)
Private Sub tmrIcon_Timer()
Static p As Integer
If p < 3 Then
p = p + 1
Else
p = 0
End If
With nidProgramData
pic.Picture = Picture1(p).Picture
.hWnd = pic.hWnd
.uId = 1&
.hIcon = Picture1(p).Picture
.szTip = "...." & Chr$(0)
End With
Shell_NotifyIcon NIM_MODIFY, nidProgramData
End Sub