Shell_NotifyIcon() & Co...

Supa

Erfahrenes Mitglied
hy...

ähhmm... kann mir vielleicht im Umgang mit Shell_NotifyIcon() helfen?

also ich ich hab bis jetzt folgedes:

Code:
#define ID_TASKBARICON 100
#define WM_ICONNOTIFY           (WM_USER + 101)

NOTIFYICONDATA nid;
nid.cbSize = sizeof(NOTIFYICONDATA);
nid.hWnd = Form1;
nid.uID = ID_TASKBARICON;
nid.uFlags = NIF_ICON|NIF_MESSAGE|NIF_TIP;
nid.uCallbackMessage = WM_ICONNOTIFY;
nid.hIcon = LoadIcon(NULL, IDI_APPLICATION);
strcpy(nid.szTip, "Tooltip Text");

Shell_NotifyIcon(NIM_ADD, &nid);
so, schön und gut, wenn ich das ganz da oben jetzt in mein Button->OnClick(); Event packe, erscheint im Tray ein kleines Icon. sobald ich mit der Maus drüber gehe, verschwindet es einfach wieder...

und da is auch schon mein problem. was mach ich falsch, bzw. wie krieg ich es hin, das es nicht ständig wieder verschwindet? und im nächsten schritt, wie ich mit einem rechts oder links klick der maus auf das icon, ereignisse auslösen kann...

selbstverständlich hab ich schon einige stunden das internet gequält und bin auch auf zahlreiche lösungen und code schnippsel gestoßen, nur halfen die mir nicht wirklich weiter :(

ich hab noch gelesen, das man irgendwie mit callbacks arbeiten muss um dieses WM_ICONNOTIFY zu behandeln, aber... davon hab ich noch garkeinen schimmer.
kann mir vielleicht jmd. sagen, wie diese dinger funktionieren, bzw. wo ich vernünfig was darüber lesen kann?

das wäre sehr nett... und danke schon mal :)
 
Hallo,

habe/hatte das selbe Problem und das Thema auf das du verweißt löst leider nicht die Frage, aus welchem Grund das Trayicon beim "berühren" mit der Maus verschwindet, daß Programm selbst aber nach wie vor im Hintergrund weiter läuft.

Habe den Quelltext aus Deinem Verweis kopiert und kompiliert, doch tritt auch hier genau der selbe Effekt auf: beim Überfahren mit der Maus verschwindet das Trayicon.

Habe nun zwar ein Beispiel in dem es funktioniert, jedoch warum es das tut, kann ich, auch auf Grund des im vergelich wesentlich umfrangreicheren Codes, leider nicht nachvollziehen.

Vielleicht hast Du ja doch noch -- nach 4 Jahren -- eine Idee dazu. :D

Gruß
Veps
 
Zurück