Zeiger auf Traymenu
-
Hi.
Ich habe mit der Klasse CSystemTray von Chris Maunder ( http://www.codeproject.com/shell/systemtray.asp ) eine Programm erstellt, dass sich logischerweise im Tray befindet. Jetzt suche ich eine Möglichkeit, einen Zeiger auf dieses Traymenu zu bekommen.
-
Du kannst von CTrayIcon ableiten und CustomizeMenu überschreiben.
-
Danke für deine Antwort. Leider habe ich es aber nicht hinbekommen, mir eine Funktion zusammenzubasteln, die den Zeiger zurückliefert. Ich weiß nicht so richtig, wie ich das anstellen soll.
Könntest du mir vielleicht ein par Zeilen Code geben?
-
Ich hab mir die Quellen angesehen, das Menü wird jedesmal "live" erstellt, wenn das trayicon geklickt wird. Bevor das Menü angezeigt wird, wird aber noch mal die virtuelle Funkjtion "CustomizeMenu" aufgerufen, das ist die einzige Stelle, wo Du an das Menü rankommst.
class CMytrayMenu : public CTrayMenu { public: // evtl. Konstruktoren der Basisklasse replizieren virtual void CustomizeMenu(CMenu * menu) { // hier kannst du das Menü modifizieren. // den zeiger darfst du Dir allerdings nicht merken } };
Du kannst natürlich auch die Klasse modifizieren, und statt des aktuell erstellten Menüs ein eigenes verwenden.
-
Deine Erkärung hat auf jeden Fall Licht in die Dunkelheit gebracht.
Danke!