Grundlegendes über Symbolleisten
Dieser Artikel beschreibt die grundlegende MFC-Implementierung, die Sie der Anwendung eine Standardsymbolleiste hinzufügen können, indem eine Option im Anwendungs-Assistenten auswählt. Folgende Themen werden behandelt:
Die Anwendungs-Assistenten-Symbolleistenoption
Die Symbolleiste im Code
Bearbeiten der Symbolleistenressource
Mehrere Symbolleisten
Die Anwendungs-Assistenten-Symbolleisten-Option
Um eine einzelne Symbolleiste mit Standardschaltflächen abzurufen, wählen Sie die Standardandockensymbolleistenoption auf der Seite aus, die Benutzeroberflächen-Funktionen angezeigt. Dies fügt das Code der Anwendung hinzu:
Erstellt das Symbolleistenobjekt.
Verwaltet die Symbolleiste, einschließlich der Möglichkeit andocken oder frei verschieben zu.
Die Symbolleiste im Code
Die Symbolleiste CToolBar ist ein Objekt, das als Datenmember von CMainFrame-Klasse der Anwendung deklariert ist. Das bedeutet, dass das Symbolleistenobjekt im Hauptrahmenfensterobjekt eingebettet. Dies bedeutet, dass MFC die Symbolleiste erstellt, wenn es das Rahmenfenster und die Symbolleiste zerstört, wenn es das Rahmenfenster zerstört. Die folgende Auszug Klassendeklaration, für eine Multiple Document Interface (MDI)- Anwendung, werden Datenmember für eingebettete Symbolleiste und einer eingebetteten Statusleiste an. Sie wird auch die Überschreibung der OnCreate-Memberfunktion an.
class CMainFrame : public CMDIFrameWnd
{
// Implementation
protected: // control bar embedded members
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// Generated message map functions
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
DECLARE_MESSAGE_MAP()
Symbolleistenerstellung tritt in CMainFrame::OnCreate auf. MFC ruft OnCreate auf, nachdem es das Fenster für denjenigen Frame erstellt jedoch hat, bevor sie sichtbar wird. Der OnCreate, den der Anwendungs-Assistent generiert, führt die folgenden Symbolleistenaufgaben:
Ruft die CToolBarErstellen-Memberfunktion des Objekts auf, um das zugrunde liegende Objekt CToolBarCtrl zu erstellen.
Ruft LoadToolBar auf, um die Symbolleistenressourceninformationen zu laden.
Aufrufe funktioniert, um das Andocken, das unverankert und die QuickInfo zu aktivieren. Ausführliche Informationen über diese Aufrufe, finden Sie im Artikel Andocken und unverankerte Symbolleisten.
Hinweis
Das allgemeine Beispiel DOCKTOOL MFC enthält Darstellungen der alten und neuen MFC-Symbolleisten ein.Die Symbolleisten, die COldToolbar verwenden, benötigen Aufrufe in Schritt 2 auf LoadBitmap (und nicht LoadToolBar) und SetButtons.Die Symbolleisten erfordern neuen Aufrufe von LoadToolBar.
Das Andocken, das unverankert und die QuickInfoaufrufe sind optional. Sie können diese Zeilen von OnCreate entfernen, falls gewünscht. Das Ergebnis ist eine Symbolleiste, die festgelegt, kann weiterhin auf frei verschieben oder redock und kann, QuickInfo anzuzeigen.
Bearbeiten der Symbolleisten-Ressource
Die Standardsymbolleiste, die Sie mit dem Anwendungs-Assistenten abrufen, ist auf Grundlage einer benutzerdefinierten Ressource RT_TOOLBAR, eingeführt in MFC 4.0. Sie können diese Ressource mit Symbolleisten-Editor bearbeiten. Der Editor können Sie einfache Schaltflächen hinzufügen, löschen und neu anordnen. Er enthält einen grafischen Editor für die Schaltflächen, der dem allgemeinen Grafikeditor in Visual C++ sehr ähnelt. Wenn Sie Symbolleisten in früheren Versionen von Visual C++ bearbeitet haben, suchen Sie die Aufgabe jetzt, die einfacher ist.
Um eine Symbolleisten-Schaltfläche an einen Befehl herzustellen, geben Sie der Schaltfläche eine Befehls-ID, wie ID_MYCOMMAND. Geben Sie der Befehls-ID in der Eigenschaftenseite der Schaltfläche im Symbolleisten-Editor angezeigt. Erstellen Sie dann eine Handlerfunktion für den Befehl (weitere Informationen finden Sie unter Zuordnungs-Meldungen auf Funktionen ).
Neue CToolBar-Memberfunktionsarbeit mit der RT_TOOLBAR Ressource. LoadToolBar wird jetzt mit LoadBitmap statt, um die Bitmap der Symbolleistenschaltflächenbilder zu laden und die SetButtons, um die Schaltflächenformate festzulegen und Schaltflächen mit Bitmap-Bildern herzustellen.
Details zum Verwenden des Symbolleisten-Editors, finden Sie unter Symbolleisten-Editor.
Mehrere Symbolleisten
Der Anwendungs-Assistent bietet eine Standardsymbolleiste. Wenn Sie mehr als eine Symbolleiste in der Anwendung benötigen, können Sie den Code für zusätzliche Symbolleisten auf Grundlage des vom Assistenten generierten Code für die Standardsymbolleiste modellieren.
Wenn Sie eine Symbolleiste als Ergebnis eines Befehls anzeigen möchten, benötigen Sie:
Erstellen Sie eine neue mit dem Symbolleistenressource Symbolleisten-Editor und laden Sie sie in OnCreate mit der Memberfunktion LoadToolbar.
Betten Sie ein neues CToolBar-Objekt in der Hauptrahmenfensterklasse ein.
Führen Sie die entsprechenden Funktionsaufrufe in OnCreate andocken, oder, Symbolleiste zu Float, legen Sie die Stile, usw. fest.
Worüber möchten Sie mehr erfahren?
MFC-Symbolleisten-Implementierung (Übersichtsinformationen über Symbolleisten)
Die Klassen CToolBar und CToolBarCtrl