15/07/08 12:44
M@d_Hacker
In un modulo..
In un cmd..
Option Explicit 'Costanti---------------------------------------------------------------------------------------------- Private Const NIM_ADD = &H0 'Aggiunge un'icona Private Const NIM_MODIFY = &H1 'Modifica un'icona Private Const NIM_DELETE = &H2 'Elimina un'icona Private Const NIF_MESSAGE = &H1 'Per modificare il membro uCallBackMessage Private Const NIF_ICON = &H2 'Per modificare l'icona Private Const NIF_TIP = &H4 'Per modificare il testo del tooltip Private Const WM_MOUSEMOVE = &H200 Private Const WM_LBUTTONDOWN = &H201 'Evento Click tasto sinistro Private Const WM_LBUTTONDBLCLK = &H203 'Doppio clic con il tasto sinistro Private Const WM_RBUTTONDOWN = &H204 'Evento Click tasto destro Private Const WM_RBUTTONDBLCLK = &H206 'Doppio clic con il tasto destro 'Tipi--------------------------------------------------------------------------------------------------- Private Type NOTIFYICONDATA cbSize As Long ' dimensioni della struttura hwnd As Long ' handle della finestra padre uId As Long ' utilizzato solo con più icone associate alla medesima applicazione uFlags As Long ' Flag uCallBackMessage As Long ' gestore delle notifiche hIcon As Long ' handle dell'icona szTip As String * 64 ' testo del tooltip End Type 'Dll--------------------------------------------------------------------------------------------------------------- Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean '****************************************************************************************************** 'Variabili Dim Nid As NOTIFYICONDATA Dim IsBackGround As Boolean Public Sub InitNotifyIcon(ByVal Frm As Form) Nid.cbSize = Len(Nid) Nid.hwnd = Frm.hwnd Nid.uId = 0 Nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE Nid.uCallBackMessage = WM_MOUSEMOVE 'Messaggio di notifica inviato alla finestra Nid.hIcon = Frm.Icon Nid.szTip = Frm.Caption + vbNullChar Shell_NotifyIcon NIM_ADD, Nid End Sub Public Sub ChangeTooltipText(ByVal Text As String) Nid.szTip = Text & vbNullChar Shell_NotifyIcon NIM_MODIFY, Nid End Sub Public Sub DestroyNotifyIcon() Shell_NotifyIcon NIM_DELETE, Nid End Sub Public Sub BackGround(ByVal Frm As Form) IsBackGround = True Call CloseWindow(Frm.hwnd) Frm.Hide End Sub Public Sub Handler(ByVal Frm As Form, ByVal X As Single) 'Da chiamare in MouseMove Handler(oggetto form,coordinata x dell'evento MouseMove) 'NB: La scalemode del form deve essere settata in 1-Twip If IsBackGround Then Dim Msg As Long Msg = Frm.ScaleX(X, Frm.ScaleMode, vbPixels) Select Case Msg Case WM_LBUTTONDOWN '*** Case WM_LBUTTONDBLCLK IsBackGround = False Frm.WindowState = vbNormal Frm.Show Case WM_RBUTTONDOWN '*** Case WM_RBUTTONDBLCLK '*** End Select End If End Sub
In un cmd..
Call BackGround(Me)
aaa