Grundlegendes über Symbolleisten

In diesem Artikel wird die grundlegende MFC-Implementierung beschrieben, mit der Sie Ihrer Anwendung eine Standardsymbolleiste hinzufügen können, indem Sie im Anwendungs-Assistenten eine Option auswählen. Folgende Themen werden behandelt:

Die Symbolleistenoption "Anwendungs-Assistent"

Um eine einzelne Symbolleiste mit Standardschaltflächen zu erhalten, wählen Sie die Standard-Andocksymbolleistenoption auf der Seite mit den Benutzeroberfläche-Features aus. Dadurch wird Ihrer Anwendung Code hinzugefügt, der:

  • Erstellt das Symbolleistenobjekt.

  • Verwaltet die Symbolleiste, einschließlich der Möglichkeit zum Andocken oder Schweben.

Die Symbolleiste im Code

Die Symbolleiste ist ein CToolBar-Objekt , das als Datenmememm der Klasse Ihrer Anwendung CMainFrame deklariert wird. Das Symbolleistenobjekt ist also in das Standard Framefensterobjekt eingebettet. Dies bedeutet, dass MFC die Symbolleiste erstellt, wenn es das Rahmenfenster erstellt und die Symbolleiste zerstört, wenn es das Rahmenfenster zerstört. Die folgende partielle Klassendeklaration für eine MDI-Anwendung (Multiple Document Interface) zeigt Datenmember für eine eingebettete Symbolleiste und eine eingebettete Statusleiste an. Außerdem wird die Außerkraftsetzung der OnCreate Memberfunktion angezeigt.

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()

Die Symbolleistenerstellung erfolgt in CMainFrame::OnCreate. MFC ruft OnCreate auf, nachdem das Fenster für den Frame erstellt wurde, aber bevor es sichtbar wird. Der vom Anwendungs-Assistent generierte Standard OnCreate führt die folgenden Symbolleistenaufgaben aus:

  1. Ruft die Create-Memberfunktion des CToolBar Objekts auf, um das zugrunde liegende CToolBarCtrl -Objekt zu erstellen.

  2. Ruft LoadToolBar auf, um die Ressourceninformationen der Symbolleiste zu laden.

  3. Ruft Funktionen auf, um Andocken, Unverankerten und QuickInfos zu aktivieren. Ausführliche Informationen zu diesen Anrufen finden Sie im Artikel "Andocken" und "Unverankerte Symbolleisten".

Hinweis

Das MFC General-Beispiel DOCKTOOL enthält Illustrationen von alten und neuen MFC-Symbolleisten. Die Symbolleisten, die verwenden, COldToolbar erfordern Aufrufe in Schritt 2 bis LoadBitmap (statt LoadToolBar) und an SetButtons. Für die neuen Symbolleisten sind Aufrufe erforderlich LoadToolBar.

Die Andock-, Unverankerte und QuickInfo-Aufrufe sind optional. Sie können diese Zeilen OnCreate bei Bedarf entfernen. Das Ergebnis ist eine Symbolleiste, die neu Standard behoben ist, nicht in der Lage ist, die QuickInfos anzuzeigen.

Bearbeiten der Symbolleistenressource

Die Standardsymbolleiste, die Sie mit dem Anwendungs-Assistenten erhalten, basiert auf einer RT_TOOLBAR benutzerdefinierten Ressource, die in MFC Version 4.0 eingeführt wurde. Sie können diese Ressource mit dem Symbolleisten-Editor bearbeiten. Mit dem Editor können Sie Schaltflächen ganz einfach hinzufügen, löschen und neu anordnen. Sie enthält einen grafischen Editor für die Schaltflächen, die dem allgemeinen Grafik-Editor in Visual C++ sehr ähnlich sind. Wenn Sie Symbolleisten in früheren Versionen von Visual C++ bearbeitet haben, werden Sie die Aufgabe jetzt wesentlich einfacher finden.

Um eine Symbolleistenschaltfläche mit einem Befehl zu verbinden, geben Sie der Schaltfläche eine Befehls-ID, z ID_MYCOMMAND. B. . Geben Sie die Befehls-ID auf der Eigenschaftenseite der Schaltfläche im Symbolleisten-Editor an. Erstellen Sie dann eine Handlerfunktion für den Befehl (weitere Informationen finden Sie unter Zuordnen von Nachrichten zu Funktionen ).

Neue CToolBar-Memberfunktionen arbeiten mit der RT_TOOLBAR Ressource. LoadToolBar wird jetzt anstelle von LoadBitmap verwendet, um die Bitmap der Symbolleistenschaltflächenbilder zu laden, und SetButtons , um die Schaltflächenformate festzulegen und Schaltflächen mit Bitmapbildern zu verbinden.

Ausführliche Informationen zur Verwendung des Symbolleisten-Editors finden Sie unter Symbolleisten-Editor.

Mehrere Symbolleisten

Der Anwendungs-Assistent bietet Ihnen eine Standardsymbolleiste. Wenn Sie mehr als eine Symbolleiste in Ihrer Anwendung benötigen, können Sie Ihren Code für zusätzliche Symbolleisten basierend auf dem vom Assistenten generierten Code für die Standardsymbolleiste modellieren.

Wenn Sie eine Symbolleiste als Ergebnis eines Befehls anzeigen möchten, müssen Sie:

  • Erstellen Sie eine neue Symbolleistenressource mit dem Symbolleisten-Editor, und laden Sie sie OnCreate mit der LoadToolbar-Memberfunktion .

  • Betten Sie ein neues CToolBar-Objekt in Ihre Standard Framefensterklasse ein.

  • Führen Sie die entsprechenden Funktionsaufrufe aus OnCreate , um die Symbolleiste anzudocken oder zu schweben, ihre Stile festzulegen usw.

Was möchten Sie mehr über

Siehe auch

Implementieren der MFC-Symbolleiste