Menüeinträge an- bzw- abhaken
-
Hi an alle,
ich weiß dazu gibt es wahrscheinlich jeden Menge Sachen in Google zu finden mir fällt aber gerade anscheinend kein passender Suchbegriff ein also verzeiht mir bitte
.Also ich möchte nur kurz wissen mit welcher Methode ich prüfen kann ob ein Menüeintrag gesetzt ist oder auch nicht bzw. wie ich diesen beim Start
einer Applikation setzen kann.Gruß
-
Vorschlag: Du gehts mal ein Tutorial duch für die MFC und arbeitest Dich zu Command-Handlern vor.
-
Ein gutes zur Hand worin das vorkommt?
-
-
Besten Dank, das hat geholfen:D
-
Jetzt hab ich noch ein Problem,
innerhalb meiner View Klasse möchte ich auf das Menü zugreifen.
Dazu habe ich einen Event hinzugefügt, wenn ich auf ein Item im Menü klicke.
Nun möchte ich, dass wenn z.B. der Haken gesetzt ist das er rausgenommen wird.Im Event Handler mach ich es momentan folgendermaßen:
//Funktion ist in View Klasse MENUITEMINFOW mItemInfo; CWnd* pMainWnd = AfxGetMainWnd(); CMenu *mMenu = pMainWnd->GetMenu(); CMenu *mSubMenu = mMenu->GetSubMenu(0); mSubMenu->GetMenuItemInfo(ID_MENUITEM, &mItemInfo); if(mItemInfo.fState == MF_CHECKED) { mSubMenu->CheckMenuItem(ID_MENUITEM, MF_UNCHECKED); m_bSetForeground = false; } else if(mItemInfo.fState == MF_UNCHECKED) { mSubMenu->CheckMenuItem(ID_MENUITEM, MF_CHECKED); m_bSetForeground = true; }Vermutlich mach ich das gedanklich gerade völlig falsch.
Gruß
-
Vollkommener Unfug.
Ich dnke Du hast es verstanden was in dem Tutorial steht.
Sorge dafür das der ON_UPDATE_COMMAND_UI Handler den Zustand setzt oder zuzrücksetzt.
SetCheck also mit TRUE oder FALSE aufrufst. Mehr musst Du nicht machen... Du benötigst kein Menü Handle!Nochmal mein Rat: Bitte lies ein Tutorial!
-
Tut mir ja leid, aber genau das ist was in dem Tutorial darüber stand zumindest ansatzweise
mit GetMenu einen Zeiger auf das Menü holen und mit GetSubMenu auf den ersten Eintrag gehen also 0.
Gut das mit GetMenuItemInfo habe ich mir selbst zusammen gereimt
.
-
Du hast eine MFC Anwendung! Kein WinAPI Programm. Und selbst da würde ich es anders machen.
Lies bitte mal was über ON_UPDATE_COMMAND_UI Handler und das steht da auch drin...