Notifyicondata

  • #1
K

killer-Trekkie

Bekanntes Mitglied
Themenersteller
Dabei seit
28.10.2003
Beiträge
145
Reaktionspunkte
0
Hi,

ich habe ein Programm geschrieben, dass bei mir im Tray läuft. Das gnaze läuft auch sehr gut, allerdings bin ich bei der Anwendung auf zwei Details aufmerksam geworden. Und zwar:

1) Hätte ich es gerne, dass wenn ich bei dem Programm auf den Minimierenbutton clicke, das Programm im Tray verschwindet

und

2) Wenn ich mit der rechten Maustaste auf das Trayicon clicke, erscheint ein PopupMenu. Das Problem ist jetzt, dass wenn ich das wieder weg haben will, ohne auf ein Item im Menu geclickt zu haben, funzt dat net. Also: Wie bekomme ich es hin, dass wenn ich nicht auf das Popupmenu clicke, das selbige wieder verschwindet?

Wäre toll, wenn mir jemand helfen könnte.

MFG

killer-Trekkie
 
  • #2
Hätte ich es gerne, dass wenn ich bei dem Programm auf den Minimierenbutton clicke, das Programm im Tray verschwindet

Verschwinden lassen:
  ShowWindow(hWindow, SW_HIDE) bei WM_SYSCOMMAND, SC_MINIMIZE.
Verschwinden lassen, wenn das Fenster minimiert ist:
  ShowWindow(hWindow, SW_HIDE) bei WM_SIZE, SIZE_MINIMIZED, denke ich mal.
In Richtung Tray animieren:
  Das müsstest du von Hand machen, würde ich sagen. DrawAnimatedRects
  würde sich da anbieten. Vorher abfragen, ob der Anwender Animationen deaktiviert hat.

Wie bekomme ich es hin, dass wenn ich nicht auf das Popupmenu clicke, das selbige wieder verschwindet?

Aktiviere das Fenster vor TrackPopupMenu (per SetForegroundWindow) und sende nach TrackPopupMenu eine Null-Message ans Fenster.

Also statt

Code:
TrackPopupMenu(hMenu, TPM_RIGHTBUTTON, x, y, 0, hWindow, NULL);

Code:
SetForegroundWindow(hWindow);
TrackPopupMenu(hMenu, TPM_RIGHTBUTTON, x, y, 0, hWindow, NULL);
PostMessage(hWindow, WM_NULL, 0, 0);
 
Thema:

Notifyicondata

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben