Auf Menüklick reagieren
-
Ich habe eine dialogbasierenden MFC-Anwendung, und zeige so beim Trayicon ein Menü an:
POINT pt; SetForegroundWindow(); GetCursorPos(&pt); HMENU m=LoadMenu(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDR_MENU1)); HMENU m2=GetSubMenu(m,0); TrackPopupMenu(m2, TPM_RIGHTBUTTON, pt.x, pt.y, NULL, this->m_hWnd, NULL); PostMessage(WM_NULL, 0, 0);
Nur wie weiss ich wann etwas angeklickt wurde, und vorallem was?
PS: Man kann ja in den Resourcen auswählen, ob vor dem Menüeintrag ein Häckchen sein soll. Wie kann man das ändern? (Ich meine als Funktion, z.B. ÄndereStatus(1,1,IDR_MENU1);)
MfG,
D.Derigs
-
1)In den Ressource den Menüpunkt auswählen.
2)Rechtsklick,dann Klassenassistant wählen
3)Dann wirst du gefragt welchen Dialog du das Menü zuordnen willst.
Wähle den Dialog aus in dem du die Menüpunkte abarbeiten willst
4)Jetz wählst du einfach Command aus und klicks auf Funktion hinzufügen.
5)Jetz hast du eine Funktion in den Dialog den du vorher ausgewählt hast,die durch den Menüpunkt aufgerufen wird.PS:
Mitmenu.CheckMenuItem(ID_Des_MENU_PUNKTES,MF_BYCOMMAND|MF_CHECKED);
setzt du einen Hacken und mit
menu.CheckMenuItem(ID_Des_MENU_PUNKTES,MF_BYCOMMAND|MF_UNCHECKED);
entfernst du ihn wieder.
Damit du die Hacken behälts solltest du das Menü nicht bei jeden Aufruf neu aus der Ressource laden.
-
Falls du das Menü zur Laufzeit anlegst, und es somit
keine Feste ID hat, schau mal in die FAQ, da steht etwas zu dem Problem...Devil