Ok, how do I put my programs icon in the system tray (or a animated gif) on a minimalize of my program?
And where can I down a forum like this :D
Printable View
Ok, how do I put my programs icon in the system tray (or a animated gif) on a minimalize of my program?
And where can I down a forum like this :D
VB Code:
'Download the full source+pictures+... at [url]http://kpdteam.hypermart.net/download/tray.zip[/url] Private Type NOTIFYICONDATA cbSize As Long hWnd As Long uId As Long uFlags As Long ucallbackMessage As Long hIcon As Long szTip As String * 64 End Type Private Const NIM_ADD = &H0 Private Const NIM_MODIFY = &H1 Private Const NIM_DELETE = &H2 Private Const NIF_MESSAGE = &H1 Private Const NIF_ICON = &H2 Private Const NIF_TIP = &H4 Private Const WM_LBUTTONDBLCLK = &H203 Private Const WM_LBUTTONDOWN = &H201 Private Const WM_RBUTTONUP = &H205 Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean Dim TrayI As NOTIFYICONDATA Private Sub Form_Load() TrayI.cbSize = Len(TrayI) 'Set the window's handle (this will be used to hook the specified window) TrayI.hWnd = pichook.hWnd 'Application-defined identifier of the taskbar icon TrayI.uId = 1& 'Set the flags TrayI.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE 'Set the callback message TrayI.ucallbackMessage = WM_LBUTTONDOWN 'Set the picture (must be an icon!) TrayI.hIcon = imgIcon(2).Picture 'Set the tooltiptext TrayI.szTip = "Recent" & Chr$(0) 'Create the icon Shell_NotifyIcon NIM_ADD, TrayI Me.Hide End Sub Private Sub Form_Unload(Cancel As Integer) 'remove the icon TrayI.cbSize = Len(TrayI) TrayI.hWnd = pichook.hWnd TrayI.uId = 1& Shell_NotifyIcon NIM_DELETE, TrayI End End Sub Private Sub mnuPop_Click(Index As Integer) Select Case Index Case 0 MsgBox "KPD-Team 1998" + Chr$(13) + "URL: [url]http://www.allapi.net/[/url]" + Chr$(13) + "E-Mail: [email][email protected][/email]", vbInformation + vbOKOnly Case 2 Unload Me End Select End Sub Private Sub pichook_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Msg = X / Screen.TwipsPerPixelX If Msg = WM_LBUTTONDBLCLK Then 'Left button double click mnuPop_Click 0 ElseIf Msg = WM_RBUTTONUP Then 'Right button click Me.PopupMenu mnuPopUp End If End Sub Private Sub Timer1_Timer() Static Tek As Integer 'Animate the icon Me.Icon = imgIcon(Tek).Picture TrayI.hIcon = imgIcon(Tek).Picture Tek = Tek + 1 If Tek = 3 Then Tek = 0 Shell_NotifyIcon NIM_MODIFY, TrayI End Sub
There's a more correct version but very similar in the EventVB OCX control (source included) at Merrion Computing Downloads that uses the RegisterMessage API call to create its own message to communicate with the NotifyIcon and is therefore safe to use without interfering with your existing form events.
HTH,
D.