Private Type IconeTray cbSize As Long 'Taille de l'icône (en octets) hWnd As Long 'Handle de la fenêtre chargée de recevoir les messages envoyés lors des évènements sur l'icône (clics, doubles-clics...) uID As Long 'Identificateur de l'icône uFlags As Long uCallbackMessage As Long 'Messages à renvoyer hIcon As Long 'Handle de l'icône szTip As String * 64 'Texte à mettre dans la bulle d'aide End Type Dim IconeT As IconeTray 'Constantes nécessaires Private Const AJOUT = &H0 Private Const MODIF = &H1 Private Const SUPPRIME = &H2 Private Const MOUSEMOVE = &H200 Private Const MESSAGE = &H1 Private Const Icone = &H2 Private Const TIP = &H4 Private Const DOUBLE_CLICK_GAUCHE = &H203 Private Const BOUTON_GAUCHE_POUSSE = &H201 Private Const BOUTON_GAUCHE_LEVE = &H202 Private Const DOUBLE_CLICK_DROIT = &H206 Private Const BOUTON_DROIT_POUSSE = &H204 Private Const BOUTON_DROIT_LEVE = &H205 'API nécessaire Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As IconeTray) As Boolean
sub form_load() 'Préparation de la variable IconeT IconeT.cbSize = Len(IconeT) 'Taille de l'icône en octet IconeT.hWnd = Me.hWnd 'Handle de l'application (pour qu'elle reçoive les messages envoyés lors d'un clic, double-clic... IconeT.uID = 1& 'Identificateur de l'icône IconeT.uFlags = Icone Or TIP Or MESSAGE IconeT.uCallbackMessage = MOUSEMOVE 'Renvoyer les messages concernant l'action de la souris IconeT.hIcon = Me.Icon 'Mettre en icône l'image qui est dans le contrôle "Image1" IconeT.szTip = "Icon Tray" & Chr$(0) 'Texte de la bulle d'aide 'Appel de la fonction pour mettre l'icône dans le système tray Shell_NotifyIcon AJOUT, IconeT end sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Static msg As Long 'Se produit lorsque l'utilisateur agit avec la souris sur 'l'icône placée dans le système tray msg = X / Screen.TwipsPerPixelX Select Case msg 'Différentes possibilité d'action Case DOUBLE_CLICK_GAUCHE: 'mettez Call reloadform Case BOUTON_GAUCHE_POUSSE: 'ce Case BOUTON_GAUCHE_LEVE: 'que Case DOUBLE_CLICK_DROIT: 'vous Case BOUTON_DROIT_POUSSE: 'voudrez Case BOUTON_DROIT_LEVE: 'qu'il se passe PopupMenu Menu 'fait apparaitre le menu End Select End Sub
Private Sub Form_Unload(Cancel As Integer) IconeT.cbSize = Len(IconeT) IconeT.hWnd = Me.hWnd IconeT.uID = 1& Shell_NotifyIcon SUPPRIME, IconeT End Sub
Private Sub change() IconeT.hIcon = Form2.Icon Shell_NotifyIcon AJOUT, IconeT End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Static msg As Long 'Se produit lorsque l'utilisateur agit avec la souris sur 'l'icône placée dans le système tray msg = X / Screen.TwipsPerPixelX Select Case msg 'Différentes possibilité d'action Case DOUBLE_CLICK_GAUCHE: 'mettez Case BOUTON_GAUCHE_POUSSE: 'ce Case BOUTON_GAUCHE_LEVE: 'que call change() '<========================== Case DOUBLE_CLICK_DROIT: 'vous Case BOUTON_DROIT_POUSSE: 'voudrez Case BOUTON_DROIT_LEVE: 'qu'il se passe End Select End Sub
private sub change() Shell_NotifyIcon SUPPRIME, IconeT IconeT.hIcon = Form2.Icon Shell_NotifyIcon AJOUT, IconeT end sub
'-Général- public EtatIconTray as boolean Puis dans le sub suivant met : sub form_load EtatIconTray= true end sub Puis dans le sub suivant met : private sub change() if EtatIconTray =true then Shell_NotifyIcon SUPPRIME, IconeT IconeT.hIcon = Form2.Icon Shell_NotifyIcon AJOUT, IconeT else Shell_NotifyIcon SUPPRIME, IconeT IconeT.hIcon = Form1.Icon Shell_NotifyIcon AJOUT, IconeT end if end sub
private sub change() if EtatIconTray=true then Shell_NotifyIcon SUPPRIME, IconeT IconeT.hIcon = Form2.Icon Shell_NotifyIcon AJOUT, IconeT EtatIconTray=false else Shell_NotifyIcon SUPPRIME, IconeT IconeT.hIcon = Form1.Icon Shell_NotifyIcon AJOUT, IconeT EtatIconTray=true end if end sub