Menü bei Rechtsklick auf TrayIcon
-
Hallo,
wie der Titel schon sagt:
Wie kann ich meinem TrayIcon ein Menü zuordnen,
das aufgeht, sobald ich z.B. mit Rechts darauf klicke ?
-
Ist ein bißchen Handarbeit, aber im Prinzip nicht sonderlich schwer

In der Struktur, in der du das Tray-Icon definierst, gibst du erst einmal eine Message an, die das Icon auslöst:
trayIcon.uCallbackMessage = TRAY_ICON_MESSAGE;Dann bei der Message-Map folgendes Makro hinzufügen:
ON_MESSAGE(TRAY_ICON_MESSAGE, OnTrayIcon)und schließlich noch eine Funktion OnTrayIcon wie hier in die Klasse aufnehmen:
long CMainDialog::OnTrayIcon(WPARAM ID, LPARAM event) { CMenu *menu = ???; CPoint mausPos; switch(event) { case WM_RBUTTONDOWN: GetCursorPos(&mausPos); menu->TrackPopupMenu(TPM_RIGHTALIGN|TPM_RIGHTBUTTON, mausPos.x, mausPos.y, this); break; default: break; } return 0; }Vielleicht gehts auch einfacher, so klappts jedenfalls

-
Hi,
danke für deine Hilfe !
Ich habe es zwischenzeitlich bereits so gelöst:
case WM_RBUTTONDOWN: {// The user clicked the right mouse button. // Let's give them a menu so they can start/stop // the animation. CMenu oMenu; if (oMenu.LoadMenu(IDR_MENU1)) { CMenu* pPopup = oMenu.GetSubMenu(0); ASSERT(pPopup != NULL); CPoint oPoint; // Figure out where the mouse is so we // can display the menu near it. GetCursorPos(&oPoint); SetForegroundWindow(); pPopup->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, oPoint.x, oPoint.y, this); }Es wird dann auch das Menü angezeigt
nur wie kann ich
jetzt einen 2ten Menüstrang darunter/rüber setzen ?
menü1->slide1 // juhu das geht super
menü2->slide1menü2 // das hier muss noch irgendwie zeitgleich rein
-
Und noch eine Frage.
Wie kann ich in dem Menü noch kleine Bilder
einfügen ? So wie z.B. bei GetRight.
-
Kann mir niemand sagen wie ich da Icons in mein
Menü bekomme
-
Das Menü musst du selber pinseln wenn es Menüs mit Icons mittlerweile nicht schon in den MFC gibt.
-
-
na dann is wohl nix mit ebenmal so 'n icon ranhängen...