Bei Start Menü festlegen



  • Hallo, mal wieder eine Anfängerfrage:
    Ich möchte beim Start meiner MDI Anwendung anhand einer Datei entscheiden, wie das Menü auszusehen hat. Ich habe das auch mit Hilfe der FAQ hinbekommen, indem ich zwei Menüressourcen erstellt habe.
    Jetzt aber mein Problem: Ich habe gelesen, dass das Menü bei Create oder LoadFrame mit dem Fenster verknüpft wird. Doch wo rufe ich jetzt die SetMenu()-Methode auf? OnCreate wird doch vor Create aufgerufen, oder? Da bekomme ich aber eine Unknown Software Exception.


  • Mod

    In einer MDI Applikation brauchst Du Dich nicht darum zu kümmern. Wenn Du mehrere DocTemplates erzeugt hast, die alle unterschiedliche Dateiendungen haben, werden die entsprechenden Docs/Frames/VIews erzeugt und die MFC setzt automatisch das korrekte Menü gemäß dem gerade aktiven Dokumenten Typ.



  • Leider geht es mir nicht um das Öffnen von Unterfenstern, sondern vielmehr darum, dass ich eine zusätzliche Menüoption verstecken will, die nur bestimmten Nutzern zugänglich sein soll. Das muss sich aber beim Start der Anwendung entscheiden. Ich hab es bei OnCreate, OnShowWindow, OnActivate und im Konstruktor versucht, aber bei keinem ging es.

    CMenu menu;
    
    FILE* menuChange = fopen("a.txt", "r");
    if (menuChange != NULL)
    {
      menu.LoadMenu(IDR_LAB);
      fclose(menuChange);
    }
    else
    {
      menu.LoadMenu(IDR_MAINFRAME);
    }
    SetMenu(&menu);
    

Anmelden zum Antworten