Hallo 
Ich bastle gerade an nem kleinen Programm rum und versuche zu diesem Zweck ein TrayIcon zu
ersdtellen mit dem man dann das Programm ansteuern und beenden kann(eben ohne Taskeintrag).
Ich hab bissher auch bereits alles funktionelle hinzugefügt allerdings funktioniert eine Sache nicht.
Es wird kein Icon angezeigt.Der ToolTip wird korekt angezeigt wenn ich auf mein TrayIcon draufklicke.
Allerdings funzt die Grafik nicht.
Ich benutze eine eigene Grafik, allerdings funktioniert das nicht.Auch der Versuch ein windowseigene Icon scheiterte.
Weiß jemand woran dass liegen könnte, dass mein Programm kein Icon anzeigt?
Hier mein aktueller Code:
Alles anzeigen
In der main-Funktion wird dann noch ganz normal das TrayIcon per Aufruf der Funktion erstellt:
und am Ende so wieder freigegeben:
Ich würd mich freuen wenn mir jemand sagen könnte was ich konkret falsch mache, dass des nicht funktioniert.
Für jegliche Hilfe, Hinweise,Tipps etc. bin ich wie immer sehr dankbar^^
Danke im voraus!
MfG Ska
P.S.: Falls es relevant ist ich arbeite mit Windows XP

Ich bastle gerade an nem kleinen Programm rum und versuche zu diesem Zweck ein TrayIcon zu
ersdtellen mit dem man dann das Programm ansteuern und beenden kann(eben ohne Taskeintrag).
Ich hab bissher auch bereits alles funktionelle hinzugefügt allerdings funktioniert eine Sache nicht.
Es wird kein Icon angezeigt.Der ToolTip wird korekt angezeigt wenn ich auf mein TrayIcon draufklicke.
Allerdings funzt die Grafik nicht.
Ich benutze eine eigene Grafik, allerdings funktioniert das nicht.Auch der Versuch ein windowseigene Icon scheiterte.
Weiß jemand woran dass liegen könnte, dass mein Programm kein Icon anzeigt?
Hier mein aktueller Code:
Quellcode
- //enthält die nötigen Informationen, die für das Tray Icon benötigt werden
- NOTIFYICONDATA NID;
- //diese Funktion erstellt ein Tray Icon für die Application
- BOOL SetupTrayIcon(HINSTANCE hInst)
- {
- char szToolTip[] = "E.L.D.A.";
- //zunächst wird die NOTIFYICONDATA-Struktur mit den benötigten Informationen gefüllt
- NID.cbSize = sizeof(NOTIFYICONDATA);
- NID.hWnd = g_hWnd;
- NID.uID = TRAY_ID;
- NID.hIcon = LoadIcon(hInst,MAKEINTRESOURCE(IDI_WINLOGO));
- NID.uCallbackMessage = WM_SHELLNOTIFY;
- NID.uFlags = NIF_ICON | NIF_MESSAGE | NIF_TIP;
- lstrcpy(&NID.szTip[0],szToolTip);
- NID.szTip[strlen(szToolTip)] = '\0';
- //Tray Icon wird erstellt und der taskbar hinzugefügt
- if(!Shell_NotifyIcon(NIM_ADD,&NID))
- {
- //sollte ein Fehler aufgetreten sein, so wird das Programm beendet
- MessageBox(NULL,"Error:Can´t create Tray Icon!","Fatal Error",MB_OK);
- PostQuitMessage(0);
- return FALSE;
- }
- //sollte alles funktioniert haben wird TRUE zurückgegeben
- return TRUE;
- }
In der main-Funktion wird dann noch ganz normal das TrayIcon per Aufruf der Funktion erstellt:
und am Ende so wieder freigegeben:
Ich würd mich freuen wenn mir jemand sagen könnte was ich konkret falsch mache, dass des nicht funktioniert.
Für jegliche Hilfe, Hinweise,Tipps etc. bin ich wie immer sehr dankbar^^
Danke im voraus!
MfG Ska
P.S.: Falls es relevant ist ich arbeite mit Windows XP
"A Programmer is just a tool which converts cofein into code!"
(anonymer Verfasser)
[Blockierte Grafik: http://www.beepworld.de/memberdateien/members98/skabus/sigc.jpg]
(anonymer Verfasser)
[Blockierte Grafik: http://www.beepworld.de/memberdateien/members98/skabus/sigc.jpg]