Salut tout le monde,
j'ai un petit problème avec la fonction Shell_NotifyIcon. Je crée un icône dans la zone de notification à côté de l'horloge. Jusque là tout va bien l'icône s'affiche sans problème et je suis capable de faire apparaître des infos-bulles.
Le problème est que lorsque je passe la souris sur mon icône celui-ci disparait immédiatement !
Cela peut il venir du fait que je ne traite pas le message WM_MOUSEMOVE dans ma fonction callback (je sais que Shell_NotifyIcon utilise la fonction callback de façon un peu spéciale...cf le site MSDN) ?
Voilà en gros mon code (C++ Builder 6) :
Voilà j'espère que quelqu'un poura m'aider à résoudre ce petit problème !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31// Création de l'icone de notification : n_icon->LoadFromFile("h:\\sd.ico"); notify_icon.hIcon = n_icon->Handle; notify_icon.uID = 0; notify_icon.uFlags = NIF_ICON; notify_icon.cbSize = sizeof ( NOTIFYICONDATA ); notify_icon.uCallbackMessage = CM_NOTIFYICON; if ( !Shell_NotifyIcon( NIM_ADD, ¬ify_icon ) ) MessageDlg("impossible de créer l'icone de notification", mtError, TMsgDlgButtons() << mbOK, 0); // La fonction qui traite les messages en provenance de l'icone de notification : void __fastcall TMainForm::CMNotifyIcon(TMessage &Message) { if ( Message.LParam == (int) WM_LBUTTONDBLCLK ) // Double cliqué sur l'icone -> on affiche Show(); else if ( Message.LParam == (int) WM_LBUTTONDOWN ) { // Simple clique gauche : bulle avec nombre en attente Notify( "Attente de "+IntToStr(ListBox1->Items->Count) + " utilisateurs...", "mIRC - Is Here est actif", mtInformation ); } else if ( Message.LParam == (int) WM_RBUTTONDOWN ) { // Simple clique droit : menu contextuel TPoint pos; GetCursorPos( &pos ); GlobalPopup->Popup( pos.x, pos.y ); } }
Merci d'avance pour votre aide,






Répondre avec citation


Partager