SystemTray Icon (c++ / API)

D

darko m.

Hallo

Wie kann ich mein Programm aus der Linkliste entfernen und im SystemTray anzeigen lassen?

Hab herausgefunden, dass es mit shell_notifyicon gehen würde. :google:
Aber leider habe ich keine Ahnung wie ich das Anwenden kann. :confused: :suspekt:
Kann mir jemand eine Tipp geben?

Compiler: Visual Studio
 
Ist im Grunde ganz einfach:

Code:
  NOTIFYICONDATA  nidIcon;

  memset( &nidIcon, 0, sizeof( NOTIFYICONDATA ) );
  nidIcon.cbSize  = sizeof( NOTIFYICONDATA );
  nidIcon.hWnd    = hwndNotify;
  nidIcon.uID     = 17;
  nidIcon.uFlags  = NIF_ICON | NIF_TIP | NIF_MESSAGE;
  nidIcon.hIcon = LoadIcon( m_hInstance, MAKEINTRESOURCE( dwResourceID ) );

  nidIcon.uCallbackMessage = dwNotifyMessage;
  wsprintf( nidIcon.szTip, "Ich bin der Tooltip" );

  Shell_NotifyIcon( NIM_ADD, &nidIcon );
  DestroyIcon( nidIcon.hIcon );

Was ist bei dir die Linkliste? Die Fenster auf der Taskbar? Versuch entweder dein Hauptfenster zu verstecken (ShowWindow mit SW_HIDE) oder verpass ihm den extenden Style WS_EX_TOOLWINDOW.
 
Hallo

Ja mit der Linkliste meine ich die Taskbar :-(
Danke für den Code.
Aber ich kenne mich noch nicht so gut mit API aus. Ich weiss jetzt nicht
wo und wie ich den Code anweden muss.
 
Du kannst den Code fast direkt so anwenden. Du musst allerdings ein HWND angeben (du musst eins haben, das HWND bekommt dann eine Nachricht mit dem Wert, den du als uCallbackMessage übergeben hast).

Als Tip: Dieses HWND muss nicht sichtbar sein, es reicht, dass es da ist. Genaueres würde ich mir wirklich aus der MSDN holen. Je früher du damit umgehen lernst, um so besser.
 
Zurück