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ß


  • Mod

    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ß


  • Mod

    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🤡.


  • Mod

    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...


Anmelden zum Antworten