Tray verschwindet nicht...?!
-
Ich habe über die hoffentlich bekannte Funktion
Shell_NotifyIconein Trayicon in meine Task gebarcht. Das Problem wa sich nun habe ist das
sich trotz löschens mitNIM_DELETEdas Icon erst entfernt wenn
man erneut mit der Maus darüber geht.case WM_DESTROY: InitTrayIcon (NIM_DELETE, LoadIcon(hInst, (LPCTSTR)IDI_TRAY)); PostQuitMessage( 0 ); break;Bin ich mit WM_DESTROY in der falschen message gelandet?
-
Was ist InitTrayIcon für eine Funktion? Evtl. hilft dir der WinAPI-FAQ-Therad - dort wird es so gemacht:
Shell_NotifyIcon(NIM_DELETE, &nidTrayIcon);
-
Ich denke weniger, dass es dein Problem ist. Viel mehr das von Windows.
Bei mir ist das bei jedem Programm so (Ich meine jetzt keine selbstgeschriebenen)
-
Icy Wolf schrieb:
Ich denke weniger, dass es dein Problem ist. Viel mehr das von Windows.
Bei mir ist das bei jedem Programm so (Ich meine jetzt keine selbstgeschriebenen)
Dann ist bei Deinem Windows irgendwie etwas gewaltig kaputt, denn normal ist das Verhalten auf keinen Fall!
-
Nicht mein Windows ist kaputt, sondern Windows im allgemeinen. Ich hatte schon so oft einfach so dieses "Problem", aber man kann anscheinend ncihts dagegen tun (oder ich kann da nichts tun). Habe schon oft genug Windows neu installiert, etc. hilft aber ncihts (jetzt nciht wegen dem Tray Icon).
Aberwo wir schonmal bei Windows Bugs sind. Öffne mal deine Systemsteuerung und klick irgendwo auf eine freie Fläche um eine Makierung zu ziehen. Nun fahr mal mit der Maus aus dem Fenster raus. (Die Statusleiste vom Fenster muss sichtbar sein)
-
Und?
-
Da passiert bei mir nichts besonderes. Was soll denn da passieren?
Back to Topic:
Dieser Codeschnipsel funktioniert einwandfrei:
http://www.winapi.net/index.php?inhalt=s16
-
Ok, er braucht unnötigerweise 100% CPU, ist mir jetzt aufgefallen. Das ist aber auch schon alles.
-
Selbst das bei mir nicht (XP, Service Pack 2)...
-
Auf vielen Rechner (je nach installirtem Windows und ein paar Einstellungen) fängt das Fenster an sich zu schütteln.
-
hat sich schon von allein geklärt, hatte nur mit der Funktion das Icon wieder neu initialisiert statt einfach zu entfernen... mein fehler
