Menüelemente aktualisieren



  • Hallo

    Ich habe eine Dialoganwendung und eine Menü-Ressource.

    Das Menü habe ich im Ressourceneditor in den Eigenschaften des Dialoges zugewiesen.

    Das Menü erscheint in der Dialoganwndung (also nicht mit 'SetMenu()' realisiert).

    Wenn ich nun trotzdem auf Elementeinträge des Menüs zugreifen möchte, mache ich das so:

    CMenu* pMenu = GetMenu();
     pMenu->EnableMenuItem(ID_MYMENUELEMEN_FILE_OPEN,  MF_GRAYED);
    

    Das Funktiniert auch: Wenn ich im Menü z.B. auf das Menü "File" dann "open" klicke, gehts ned, weils nun deaktiviert( grayed ) ist.

    JETZT: ICh habe ein Menü, welches nicht vom Typ "Pop up" ist, d.h. der Menüeintrag (Settings) hat selber keien weiteren Einträge mehr
    Bsp:

    + File
       - open
       - close
       - exit 
     + Communcation
       - download
     + Settings
    

    Mein 'Settings' Einträg ruft direkt etwas auf und hat somit auch eine ID.

    Deaktiviere ich diese ID. Passiert nix, erst wenn ich versuche darauf zu klicken, wird es grau gezeichnet..

    Frage: Wie also kann ich das Menüelemnt neu zeichnen lassen?
    UpdateWindow() geht nicht und UpdateData() scheint mir nicht sinnvoll zu sein...

    Thx for any help!!



  • Wie legst du denn ein popup an, wenn du damit direkt einen Befehl ausführen willst? Popup's sind defacto Untermenüs, also erwartet MFC, daß dort Untereinträge dranhängen.



  • CStoll schrieb:

    Wie legst du denn ein popup an, wenn du damit direkt einen Befehl ausführen willst? Popup's sind defacto Untermenüs, also erwartet MFC, daß dort Untereinträge dranhängen.

    Nur mein Menü 'Settings' ist KEIN PopUp. Die anderen natürlich schon. 'File', 'Communication' haben daher auch keine eigene ID.



  • schreib mal ein wenig code, wie du das machst? Ist denn Settings mit in der selben Menü-Leiste wie Communications und File?


Anmelden zum Antworten