Ok, wenn du mir die Mühe machen willst. Schick mir dann mal das Ergebnis.
Also ich glaube das es wohl besser ist, die zugrunde liegenden Funktionen zu verwenden (also die der klasse TrayIconControl), wenn man den überhaupt mein Design-Konzept verwendet.
Das oben angesprochene Beispiel für Qt3 ist anders aufgebaut. Es wird kein eigenes Message only-HWND erstellt, stattdessen benutzt man das Widget, welches durch das Icon repräsentiert wird. Die Steuerung erfolgt dann über die Qt-eigene Event Verarbeitung. So kann man es auch machen.
Zurück zu meinem Code: Die Klasse TrayIcon ist sehr speziell auf meine Erfordernisse ausgelegt und deshalb vlt. nicht sehr flexibel. Ich verwende Icons in Windows-Resourcen (.rc).
Am Beispiel des c-tor:
Code: Alles auswählen
TrayIcon::TrayIcon(QWidget *parent, unsigned int uId, const QString &strText, const char *pszIconResource)
parent -> das assozierte Widget, das bei Klick aufgerufen wird
uId -> beliebig wählbare ID zur Unterscheidung von mehreren Icons*
strText -> Text des normalen Tooltip (beim überfahren des Icons mit der Maus angezeigt)
pszIconResource -> c-string mit der Icon-Resource. Beispiel:
* Unter Windows werden die Icon durch die HWND + die ID unterschieden. Also kann man die gleiche ID bei verschieden Fenstern benutzen.
Da ich aber eine eigene spezielle HWND (TrayIconControl::m_hControlWnd) verwende, darf jede ID nur einmal verwendet werden, auch wenn unterschiedliche QWidgets assoziiert werden.