Check-Mark in Menü setzen und wieder aufheben



  • Ich habe ein Menu erstellt mit dem Dialog verknüpft...
    nun will ich im Menü ein Haken setzen bzw. den Status auslesen.
    Ich bekomme es einfach nicht hin - das ich den Haken setzen kann und wieder aufheben kann...

    nehme ich

    CheckMenuItem(ID_TEST2_TEST3,1); // muss ich 3 Parameter übergeben 1. muss vom Typ HMENU sein -> wo bekomme ich denn das Objekt her??
    

    mach ich das:

    CMenu men;
    men.LoadMenu(IDR_MENU1);
    men.CheckMenuItem(ID_TEST2_TEST3,1);
    

    dann läuft er zwar durch aber nichts passiert??

    kann mir jemand sagen wie so etwas geht??



  • Du kannst ein Haken mit pCmdUI->SetCheck setzen , aber nicht wieder entfernen. Es muss erst ein Haken auf einen anderen Eintrag im gleichen Menue gesetzt werden, dann verschwindet der andere Haken automatisch.

    Gruß
    :: NoName ::



  • void CControlDlg::OnUpdateTestBlablo(CCmdUI *pCmdUI)
    {
    	pCmdUI->SetCheck(0);
    }
    

    ..sowas habe ich auch schon probiert funzt aber nit - die Funktion wird bei mir nicht einmal aufgerufen 😞

    Es muss erst ein Haken auf einen anderen Eintrag im gleichen Menue gesetzt werden, dann verschwindet der andere Haken automatisch.

    ich glaube das kann nicht sein - ich habe schon nen programm gesehen, wo es nicht so war.

    irgendwie habe ich das gefühl - das ich was völlig falsch angehe?? 😕



  • So sollte es funktionieren. Die Zustände der einzelnen Menüeinträge spielen dabei auch keine Rolle.

    OnCreateLogfiles< muss mit dem Klassenassistenten erzeugt werden. Wenn der entsprechende Menüeintrag angeklickt wird, muss die Funktion dann auch aufgerufen werden...ansonsten gibt's größere Probleme 😕

    void CMGold2_TCEDlg::OnCreateLogfiles()
    {
    m_bCreateLogFiles = !m_bCreateLogFiles;
    if(m_bCreateLogFiles){
    ((CMenu*) GetMenu())->CheckMenuItem(ID_CREATE_LOGFILES, MF_CHECKED);
    }
    else{
    ((CMenu*) GetMenu())->CheckMenuItem(ID_CREATE_LOGFILES, MF_UNCHECKED);
    }
    }


Anmelden zum Antworten