MFC-Multifunktionsleiste: Menupunkte belege und "disabled"-status entfernen



  • hallo
    weiss jemand vielleicht, wie man bei der Multifunktionsleiste die Menupunkte belegen kann, die sind ja nicht wie normal unter Ressourcen/Menu sondern unter String Table.

    und jetzt sind sie noch so gräulich (disabled), wird das nach der Funktionszuweisung automatisch aktiviert oder muss ich das noch separat machen?

    hoffe ihr könnt mir helfen, hab jetzt schon ziemlich viel Zeit investiert und komm irgendwie nicht dahinter 🙄

    renzo



  • Falsches Forum, lies dir bitte mal den Thread "Du brauchst Hilfe?" hier im Forum durch. (Siehe meine Signatur).
    Ich verschieb den Thread in ein anderes Forum, allerdings solltest du noch die nötigen informationen nachliefern, das was du bisher geschrieben hast ist eher etwas dürftig.



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum MFC (Visual C++) verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • ah, sorry, hab ganz übersehen, dass es ein eigenes MFC-Forum gibt, danke fürs schieben...
    Was für Informationen sind für euch wichtig? Ich arbeite mit der visual c++ 2008 und ich suche eigentlich nach einer Funktion, Methode, Klasse oder sonst irgendetwas in die Richtung, damit ich diese Menüpunkte bearbeiten kann.
    Das ganze Gerüst wird ja automatisch erstellt, wenn man ein MFC-Projekt wählt.


  • Mod

    Was für eine Multifunktionsleiste meinst Du?
    Menü? Toolbar?

    Ich würde Dir raten mal ein MFC Tutorial zu gemüte zu ziehen, z.B. Scribble oder ähnliches und dann Dir den Stoff über ON_COMMAND und ON_UPDATE_... Handler durchzulesen.



  • mein Problem ist, ich habe nur Tutorials oder Bücher gefunden, die das alte Menu benutzen.

    die Multifunktionsleiste kannst du beim erstellen von MFC-Projekten einstellen, sie sieht etwa so aus, wie man es sich von Office 07 gewohnt ist...

    daher wüsste ich wie man es im alten machen müsste. das mit dem ent-disablen weiss ich gerade nicht, ob das automatisch passiert...


  • Mod

    Bzgl. ON_UPDATE Handler ändert sich hier gar nicht....
    Es sind IDs mit den entsprechenden Punkten verbunden, die duch ON_UPDATE_COMMAND Handlr eingeschaltet und ausgeschaltet werden.



  • ok, ich habs jetzt mal so, wie es beim alten beschrieben wird, gemacht. Dabei wollte ich den bereits vorhandenen Menupunkt Einfügen (IDS_RIBBON_PASTE) eine Funktion zuweisen, dies habe ich so gemacht:

    childview.cpp

    BEGIN_MESSAGE_MAP(CChildView, CWnd)
    	ON_WM_PAINT()
    	ON_WM_LBUTTONDOWN()
    	ON_WM_RBUTTONDOWN()
    	ON_COMMAND(IDS_RIBBON_PASTE, &CChildView::OnRibbonPaste)
    END_MESSAGE_MAP()
    ...
    void CChildView::OnRibbonPaste()
    {
    
    }
    

    childview.h

    class CChildView : public CWnd
    {
    
    private:
    
    // Konstruktion
    public:
    	CChildView();
    
    // Attribute
    public:
    
    // Vorgänge
    public:
    
    // Überschreibungen
    	protected:
    	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
    
    // Implementierung
    public:
    	virtual ~CChildView();
    
    	// Generierte Funktionen für die Meldungstabellen
    protected:
    	afx_msg void OnPaint();
    	DECLARE_MESSAGE_MAP();
    
    public:
    	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
    	afx_msg void OnRibbonPaste();
    
    };
    

    Nun ist das Icon aber ganz verschwunden 🙄

    habe ich noch etwas vergessen?


  • Mod

    Kann ich nicht nachvollziehen.
    1. Habe ein Projekt mit dem Wizad erzeugt.
    2. Über den Wizard einen OnCommand Handler wie Du eingesetzt

    es geht wie erwartet...


Anmelden zum Antworten