menu (im SysTray)
-
Hallo.
Ich habe folgendes Problem:Mein kleines Programm kann man per klick ins Hauptmenu in die SystemTray
verschieben. (Klappt super)Wenn man jetzt mit der linken Maustaste aus das Icon klickt, soll da ein
Kontextmenu erscheinen.Das Kontextmenu erstelle ich vorher mit:
hMenuTray=CreateMenu(); hMenuTrayPopup=CreateMenu(); AppendMenu(hMenuTrayPopup, MF_STRING,3, szMenu1); AppendMenu(hMenuTrayPopup, MF_SEPARATOR,0, NULL);//--- AppendMenu(hMenuTrayPopup, MF_STRING,5, szMenu2); AppendMenu(hMenuTrayPopup, MF_STRING,6, szMenu3); AppendMenu(hMenuTray, MF_POPUP, (UINT)hMenuTrayPopup, szMenu4); AppendMenu(hMenuTray, MF_STRING, IDM_1, szMenu5);Was das Programm macht, wenn ich mit links auf das SysTrayIcon klicke:
Es öffnet ein Kontextmenu ganz schmal, als ob die Einträge fehlen würden
(szMenu1,szMenu2...).

Die UnterMenus funktionieren und werden einwandfrei dargestellt.
(inklusive Text)Was mache ich denn falsch?
Hat jemand einen Tipp, oder einen kleinen Wink mit dem Zaunpfahl?
MFG:micha_bln
-
Zeig mal wie du es öffnest
-
Ich fange die linke Maustaste in einer Funktion ab, in der das hier steht:
POINT point; point.x=LOWORD (lParam); point.y=HIWORD (lParam); if (SetForegroundWindow(hwnd) == 0) { return FALSE; } if (GetCursorPos(&point) == 0) { return FALSE; } if (TrackPopupMenu(hMenuTray, TPM_RIGHTBUTTON | TPM_RIGHTALIGN, point.x, point.y, 0, hwnd, NULL) == 0) { return FALSE; } if (PostMessage(hwnd, WM_NULL, 0, 0) == 0) { return FALSE; }
-
ich würde mal nen versuch mit TrackPopupMenu(hMenuTrayPopup... starten

-
[komm schämend aus der ecke zurück]
Bloss so zum Verständniss:
Dann muss ich also ein Untermenu erstellen, wo mein ganzes menu drin ist und dieses untermenu dann anzeigen?(Menu besteht eigentlich aus 2 Buttons und 1 Untermenu mit 4 Buttons)