Menüeinträge aktivieren/deaktivieren... Problem!!



  • Hi Leute!

    Ich wollte, dass wenn man im menü Datei/Öffnen geklickt hat, und die Datei geöffnet ist, dass dann die menüeinträge, die momentan GRAU und DEAKTIVIERT sind (zum beispiel "Datei schliessen") aktiviert werden.
    Wird dann auf Schliessen geklickt, sollte dieser nach dem UpdateData(FALSE); wieder deaktiviert sein!

    Ich hab dies zum AKTIVIEREN mal so versucht:

    void CAbrechnungDlg::OnOpen(CCmdUI* pCmdUI)
    {
        pCmpUI->Enable(TRUE);
    }
    

    Geschieht nix!! Dann hab ich es so gemacht:

    pCmdUI(ID_FILE_CLOSE)->Enable(TRUE); //ID_FILE_CLOSE ist der Eintrag schliessen, der aktiviert werden sollte....

    aber ne, immer noch errors beim compilieren!!
    Wie muss ich das machen??

    mfg
    Pro



  • Per API gehts so:

    EnableMenuItem(hMenu, ID_FILE_CLOSE, MF_BYCOMMAND|MF_ENABLED);
    

    Dabei ist hMenu das Handle des Menus (Typ: HMENU).



  • thx!
    Ist das jetzt das Deaktiviern oder das aktivieren?
    Und wie macht man dasgegenteil ??

    [ Dieser Beitrag wurde am 08.09.2002 um 08:57 Uhr von Programmer85 editiert. ]



  • Ähem... das ENABLEMENUITEM geht net!!!
    hMenu kennt der net und wenn ich

    EnableMenuItem(NULL, ID_FILE_CLOSE, MF_BYCOMMAND | MF_ENABLED);

    schreibe, wird das progg fehlerfrei compiliert, aber es geschieht im Programm nichts!!
    Die Funktion hab in in UPDTATE_COMMAND_UI von IDC_OPEN eingefügt, dass heisst, wenn man dort drauf klickt, sollte man eine Datei ganz normal öffnen können, aber SCHLIESSEN EINTRAG sollte dann aktiviert sein....



  • Hat sich erledigt!!

    HMENU hMenu = ::GetMenu(m_hWnd);
    EnableMenuItem(hMenu, ID_FILE_CLOSE, MF_BYCOMMAND | MF_ENABLED);
    ....
    

Anmelden zum Antworten