TrayIcon verschwindet nicht...
-
Hallo,
ich erstelle ein TrayIcon:
m_nidTray.cbSize = sizeof(NOTIFYICONDATA); m_nidTray.hWnd = hWnd; m_nidTray.uID = 0x0200; m_nidTray.hIcon = LoadIcon(NULL,IDI_APPLICATION); m_nidTray.uFlags = NIF_ICON | NIF_TIP | NIF_MESSAGE; m_nidTray.uCallbackMessage = (WM_USER) + 1; strcpy(m_nidTray.szTip, "Interner Chat"); Shell_NotifyIcon(NIM_ADD, &m_nidTray);
und vernichte es in WM_CLOSE:
case WM_CLOSE: Shell_NotifyIcon(NIM_DELETE, &m_nidTray); PostQuitMessage(0); return 0; break;
Leider verschwindet das Tray-Icon nach Programmende nicht, erst wenn ich mit der Maus drüberschweife, ist es futsch, wie kann ich machen, dass es sofort nach Ende weg ist?
Danke im Voraus,
MfG MAV
-
Probier das mal bei WM_DESTROY statt bei WM_CLOSE
-
Geht leider auch nicht.
-
Hmm, ist m_nidTray global oder static ?
...ich würd in WM_CLOSE lieber DestroyWindow() aufrufen und das PostQuitMessage(0); nach WM_DESTROY verschieben...
-
m_nidTray ist ein Member einer Klasse, aber static ist das Teil nicht.
Ich habe es jetzt so, wie es auch net läuft:case WM_DESTROY: PostQuitMessage(0); return 0; break; case WM_CLOSE: Shell_NotifyIcon(NIM_DELETE, &m_nidTray); DestroyWindow(hWnd); break;
-
Hmm, scheinbar ist mit m_nidTray irgendwas beim NIM_DELETE Aufruf falsch...
...sind da .hWnd , .uID und .cbSize noch richtig gesetzt ?
-
Ah, ich hab den Fehler.
Ich Depp habe immer über den Debugger beendet und nicht natürlich, klar, dass es dann nicht geht.
Danke für diene Hilfe!