SDI/MDI: Menüs mit Symbolen/Icons neben den Befehlen



  • Hallo,

    ich möchte gerne einige Menüeinträge mit Symbolen "verzieren". So wie man es bei Neu, Drucken, Kopieren/Einfügen etc. gewohnt ist.

    Nun habe ich eine ganze Weile lang gesucht und bin mir nicht sicher, ob ich irgendwas ganz einfaches übersehen habe:

    Muss man das selber "per Hand" programmieren, oder gibt es irgendwo ein Wizard oder ein "Rechte-Maus-Klick --> Symbol hinzufügen"-Befehl in VS, welchen ich nicht kenne.? 😕

    Wenn man es ausprogrammieren muss: Ist die Funktion SetMenuItemBitmaps() dafür richtig?

    Ich benutze Visual Studio 2008 (Prof.).


  • Mod

    Benutze MFCNext (SP1), dann geht das automatisch...



  • Martin Richter schrieb:

    Benutze MFCNext (SP1), dann geht das automatisch...

    Ok, ich benutze MFCNext.

    Was genau geht mit MFCNext automatisch? Dass die Standard-Menübefhle ein Symbol bekommen, oder dass Hinzufügen von Symbolen zu eigenen Menüs/Menübefehlen?


  • Mod

    Genau. Jeder Menüpunkt der auch als Button Menü vorkommt hat auch sein Symbol.
    Für die bei denen kein Toolbar vorhanden ist kann man eine Default Liste festlegen.



  • Was heißt "als Button Menü"? In einer Toolbar?

    Und wenn ein Menübefehl nicht in einer Toolbar enthalten ist, kann man ein Default-Bild festlegen? Wo kann man diese Default-Liste festlegen?


  • Mod

    Ja. Ich meine einen Toolbar.

    Für alle anderen Commands legst Du einen Dummy Toolbar an und rufst CMFCToolBar::AddToolBarForImageCollection http://msdn.microsoft.com/en-us/library/bb983344.aspx auf.



  • Mensch, das ist ja einfach! 💡

    Ok, also:

    1.) Neue Toolbar-Ressource anlegen (Ressourcenansicht-->Toolbar-->Toolbar einfügen)
    2.) Toolbar wird mit Symbolleisten-Editor geöffnet (auch über Rechtsklick aufrufbar)
    3.) Buttons malen
    4.) Den Buttons genau die ID geben, die der zugehörige Menübefehl hat
    5.) CMFCToolBar::AddToolBarForImageCollection()-Aufruf:

    //MainFrm.cpp:
    //...
    
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
       //...
       CMFCToolBar::AddToolBarForImageCollection(IDR_MY_TOOLBAR);
       //...
    }
    

    Fertig! 👍

    EDIT: Danke Martin! 👍 😉


Anmelden zum Antworten