Toolbarbuttens aktivieren/deaktivieren



  • Hi!

    Gibt es zufällig eine gute Variante um Buttons in einer Toolbar zu aktivieren bzw. zu deaktivieren (grau zu unterlegen)?

    mfg enne



  • Jedem Toolbar-Button ist i.d.R. ein Menü-ID zugeordnet. Mit dem ClassWizard kann man dann den jeweiligen ID z.B. für Frame-Windows und Viewer Klassen auswählen. Dann bekommt man als Messages COMMAND und UPDATE_COMMAND_UI angeboten. Einen Handler auf UPDATE_COMMAND_UI setzen. Dann bekommt man z.B. für den ID ID_EDIT_UNDO folgenden Rumpf (ich habe jetzt mal den Mainframe genommen):

    void CMainFrame::OnUpdateEditUndo(CCmdUI* pCmdUI) 
    {
      // TODO: Add your command update UI handler code here	
    }
    

    Nun muss man das ganze noch mit Leben füllen:

    void CMainFrame::OnUpdateEditUndo(CCmdUI* pCmdUI) 
    {
      // UNDO möglich, wenn der Buffer nicht leer ist 
      // IsUndoFufferEmpty() ist eine Funktion, die selbst zu implementieren ist!
      BOOL bEnable = !IsUndoFufferEmpty();
    
      // Button wird deaktiviert wenn bEnable FALSE ist
      pCmdUI->Enable( bEnable );
    }
    

    Gruss, Gio



  • Perfekt, danke 🙂


Log in to reply