Menu deaktivieren
-
Im MFC-FAQ hab ich nur geschaut. Danke für den Link, les ich gleich mal durch
-
Ich habe den Link durchgelesen, aber klappen tut das bei mir nicht. An sich habe ich das gleiche Probleme, wie der Threadersteller dort im letzten Post schreibt.
Mein Programm hat verschiedene Modi. In einem anderen Submenu kann man zwischen diesen Wechseln. Klicke ich nun in Submenu 1 auf das Item 2, soll sich Submenu 4 deaktiveren (beispielhaft aufgeschrieben).
Ich habe wie in dem Artikel von DiLascia beschrieben die OnUpdate für das erste Item in Submenu 4 geschrieben und auf m_pSubMenu getestet. Wenn ich jetzt auf mein Item 2 in Submenu 1 klicke, geht er aber nicht in die OnUpdates für die Submenu 4 Items. Wie kann ich das erreichen?VG
Pellaeon
-
Natürlich geht er da nicht mehr rein, denn OnUpdate wird ja nur ausgeführt wenn OnInitMenuPopup (o.ä.) ausgeführt wird.
Es wird nur der Handler ausgefühert, den der angeklickt wird undOnUpdate wird nur ausgeführt wenn eben ein Menü aufgeklappt wird.
-
Jo das ist ja klar. Aber irgendwie muss doch auch das zu erreichen sein, was ich gerne hätte. Suchen führt leider immer zu der OnUpdate-Variante, und mit enableItem erreicht man auch nichts. Gibts es wirklich keinen Weg, das Submenü zu deaktivieren außer im Command-Handler?
-
Ich versthe nicht was Du willst.
Du hast Menüpunkte
Menu
- Subitem 1
-- Item 1-1
-- Item 1-2
- Subitem 2
-- Item 2-1
-- Item 2-2Die Subiem Handler x-1 behandeln auch die Subitem x... Wie bei Paul Dialascia.
User schaltet Item 1-2, du setzt ein Flag in Deiner Software die nun das Item 2-2 einschaltet oder ausschaltet.
Beim nächsten OnUpdate Zyklus (wnen wieder das Menü aufgeklappt wird), erscheint Item 2-2 gegraut.Warum sollte ein OnUpdate Handler 1-1 irgend einen anderen Handler anstoßen...
Habe ich was nicht verstanden?
-
Hiho,
ich mal wieder nach kleiner Pause.
Ich will nach deinem Beispiel "Subitem 2" deaktivieren und nicht "Item 2-2". Und Zumindest was ich bisher von dem Link übernommen habe, hat bei mir nicht geklappt.VG
Pellaeon
-
Der Code baisert immer darauf, das der Handler des ersten Subitems, das erledigt. Sprich also der "Item 2-1" Handler.
Das genau macht der Code von Paul DiLascia und er funtioniert, zumindest bei klassischer MFC.
-
Ja ok, bestreite ich ja nicht.
Aber wie kann ich nun mein Subitem 2 deaktivieren? Das muss doch auch in der MFC irgendwie sinnvoll gehen.
-
Und ich habe Dir den Code von Paul DiLascia geschickt, der genau dieses tut...
Was ist nun Dein Problem?
Den Code zu verstehen?
Copy&Paste zu machen?
-
Hm ich habe das evtl. anhand deines Beispiels falsch erklärt, was ich will. Ich will faktisch das Menü deaktivieren. Also z. B. wenn du die VS-Menüleiste nimmst (Datei, Bearbeiten, Ansicht, ...), will ich den komplette Menüpunkt "Ansicht" (de-)aktivieren. Und zwar außerhalb eines Ansicht-Item-handlers.
Bezogen auf mein Menü (http://img841.imageshack.us/img841/5011/menn.png):
Ich gehe in das Menu "Modus", wähle dort ein Item aus von den verfügbaren und nun soll sich, je nachdem, das Menu "VR" (de-)aktvieren. Ich habe das versucht mit dem DiLascia-Code, in dem ich das Command des ersten Items abgefangen habe, das hat aber nicht geklappt.VG
Pellaeon
-
Wenn es Unterpunkte in dem Menü gibt würde ich diesen nie disablen.
Ansonsten: Wenn es außerhalb von Handlercode sein soll, warum verwendest Du nicht einfach EnableMenuItem?
-
Weil meine Suche bisher immer den Command-Weg gezeigt hat und ich da irgendwie hängen geblieben bin. EnableMenuItem funzt. Danke!!!