CControlBar Class

Die Basisklasse für die Steuerleistenklassen CStatusBar,CToolBar,CDialogBar,CReBarund COleResizeBar.

Syntax

class CControlBar : public CWnd

Member

Geschützte Konstruktoren

Name Beschreibung
CControlBar::CControlBar Erstellt ein CControlBar-Objekt.

Öffentliche Methoden

name Beschreibung
CControlBar::CalcDynamicLayout Gibt die Größe einer dynamischen Steuerleiste als CSize-Objekt zurück.
CControlBar::CalcFixedLayout Gibt die Größe der Steuerleiste als CSize-Objekt zurück.
CControlBar::CalcInsideRect Gibt die aktuellen Maße des Steuerleistenbereichs, einschließlich der Rahmen, zurück.
CControlBar::D oPaint Rendert die Rahmen und das Ziehelement der Steuerleiste.
CControlBar::D rawBorders Rendert die Rahmen der Steuerleiste.
CControlBar::D rawControlpper Rendert das Ziehelement der Steuerleiste.
CControlBar::EnableDocking Ermöglicht das Andocken bzw. eine unverankerte Steuerleiste.
CControlBar::GetBarStyle Ruft die Formatvorlagen der Steuerleiste ab.
CControlBar::GetBorders Ruft die Rahmenwerte der Steuerleiste ab.
CControlBar::GetCount Gibt die Anzahl der Nicht-HWND-Elemente in der Steuerleiste zurück.
CControlBar::GetDockingFrame Gibt einen Zeiger auf den Frame zurück, an den eine Steuerleiste angedockt ist.
CControlBar::IsFloating Gibt einen Wert ungleich 0 (null) zurück, wenn die fragliche Steuerleiste unverankert ist.
CControlBar::OnUpdateCmdUI Ruft die Befehlshandler der Benutzeroberfläche ab.
CControlBar::SetBarStyle Ändert die Formatvorlagen der Steuerleiste.
CControlBar::SetBorders Legt die Rahmenwerte der Steuerleiste fest.
CControlBar::SetInPlaceOwner Ändert den direkten Besitzer einer Steuerleiste.

Öffentliche Datenmember

Name Beschreibung
CControlBar::m_bAutoDelete Wenn der Wert ungleich 0 (null) ist, wird das CControlBar-Objekt gelöscht, sobald die Windows-Steuerleiste zerstört wird.
CControlBar::m_pInPlaceOwner Der direkte Besitzer der Steuerleiste.

Hinweise

Eine Steuerleiste ist ein Fenster, das normalerweise am linken oder rechten Rand eines Rahmenfensters ausgerichtet wird. Es kann untergeordnete Elemente enthalten, die entweder HWND-basierte Steuerelemente sind, die Fenster sind, die Windows-Nachrichten generieren und darauf reagieren, oder nicht HWND-basierte Elemente, die keine Fenster sind und von Anwendungscode oder Frameworkcode verwaltet werden. Listenfelder und Bearbeitungssteuerelemente sind Beispiele für HWND-basierte Steuerelemente. Statusleisten- und Bitmapschaltflächen sind Beispiele für nicht HWND-basierte Steuerelemente.

Bei Steuerleistenfenstern handelt es sich normalerweise um untergeordnete Fenster eines übergeordneten Rahmenfensters, und es sind normalerweise nebengeordnete Elemente der Clientansicht oder des MDI-Clients des Rahmenfensters. Ein CControlBar-Objekt verwendet zum eigenen Positionieren Informationen über das Clientrechteck des übergeordneten Fensters. Dem übergeordneten Fenster wird dann die Menge des Speicherplatzes im Clientbereich des übergeordneten Fensters mitgeteilt, die unzugeordnet bleibt.

Weitere Informationen zu CControlBar finden Sie unter:

Vererbungshierarchie

Cobject

CCmdTarget

CWnd

CControlBar

Anforderungen

Header: afxext.h

CControlBar::CalcDynamicLayout

Das Framework ruft diese Memberfunktion auf, um die Dimensionen einer dynamischen Symbolleiste zu berechnen.

virtual CSize CalcDynamicLayout(
    int nLength,
    DWORD nMode);

Parameter

nLength
Die angeforderte Dimension der Steuerleiste, entweder horizontal oder vertikal, abhängig von dwMode.

nMode
Die folgenden vordefinierten Flags werden verwendet, um die Höhe und Breite der dynamischen Steuerleiste zu bestimmen. Verwenden Sie den bitweise OR-Operator (|), um die Flags zu kombinieren.

Layoutmodusflags Bedeutung
LM_STRETCH Gibt an, ob die Steuerleiste auf die Größe des Rahmens gestreckt werden soll. Legen Sie fest, wenn die Leiste keine Andockleiste ist (nicht zum Andocken verfügbar). Wird nicht festgelegt, wenn die Leiste angedockt oder unverankert ist (zum Andocken verfügbar). Wenn festgelegt, LM_STRETCH nLength ignoriert und Dimensionen basierend auf dem LM_HORZ zurückgibt. LM_STRETCH funktioniert ähnlich wie der bStretch-Parameter, der in CalcFixedLayout verwendet wird. Weitere Informationen zur Beziehung zwischen Stretching und Ausrichtung finden Sie in dieser Memberfunktion.
LM_HORZ Gibt an, dass der Balken horizontal oder vertikal ausgerichtet ist. Legen Sie fest, wenn der Balken horizontal ausgerichtet ist, und wenn er vertikal ausgerichtet ist, wird er nicht festgelegt. LM_HORZ funktioniert ähnlich wie der bHorz-Parameter, der in CalcFixedLayout verwendet wird. Weitere Informationen zur Beziehung zwischen Stretching und Ausrichtung finden Sie in dieser Memberfunktion.
LM_MRUWIDTH Zuletzt verwendete dynamische Breite. Ignoriert den nLength-Parameter und verwendet die gespeicherte zuletzt verwendete Breite.
LM_HORZDOCK Horizontale andockte Dimensionen. Ignoriert den nLength-Parameter und gibt die dynamische Größe mit der größten Breite zurück.
LM_VERTDOCK Vertikale andockte Dimensionen. Ignoriert den nLength-Parameter und gibt die dynamische Größe mit der größten Höhe zurück.
LM_LENGTHY Legen Sie fest, wenn nLength die Höhe (Y-Richtung) anstelle der Breite angibt.
LM_COMMIT Setzt LM_MRUWIDTH auf die aktuelle Breite der gleitenden Steuerleiste zurück.

Rückgabewert

Die Größe der Steuerleiste eines CSize-Objekts in Pixel.

Hinweise

Überschreiben Sie diese Memberfunktion, um Ihr eigenes dynamisches Layout in Klassen bereitzustellen, die Sie von CControlBar ableiten. Von abgeleitete MFC-Klassen CControlBar wie CControlBarüberschreiben diese Memberfunktion und stellen ihre eigene Implementierung bereit.

CControlBar::CalcFixedLayout

Rufen Sie diese Memberfunktion auf, um die horizontale Größe einer Steuerleiste zu berechnen.

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Parameter

bStretch
Gibt an, ob der Balken auf die Größe des Rahmens gestreckt werden soll. Der bStretch-Parameter ist ungleich 0 (null), wenn der Balken kein Andockbalken ist (nicht zum Andocken verfügbar) und 0 ,wenn er angedockt oder unverankert ist (verfügbar für das Andocken).

bHorz
Gibt an, dass der Balken horizontal oder vertikal ausgerichtet ist. Der bHorz-Parameter ist ungleich null, wenn der Balken horizontal ausgerichtet ist, und ist 0, wenn er vertikal ausgerichtet ist.

Rückgabewert

Die Steuerelementleistengröße eines -Objekts in CSize Pixel.

Hinweise

Steuerleisten wie Symbolleisten können horizontal oder vertikal gestreckt werden, um die in der Steuerleiste enthaltenen Schaltflächen aufzunehmen.

Wenn bStretch TRUE ist, strecken Sie die Dimension entlang der von bHorzbereitgestellten Ausrichtung. Anders ausgedrückt: Wenn bHorz FALSE ist, wird die Steuerleiste vertikal gestreckt. Wenn bStretch AUF FALSE festgelegt ist, erfolgt keine Streckung. Die folgende Tabelle zeigt die möglichen Permutationen und resultierenden Steuerelementleistenstile von bStretch und bHorz.

bStretch bHorz Stretching Orientation Andocken/Nicht andocken
TRUE TRUE Horizontales Stretching Horizontal ausgerichtet Nicht andocken
true FALSE Vertikales Stretching Vertikal ausgerichtet Nicht andocken
FALSE true Kein Stretching verfügbar Horizontal ausgerichtet Andocken
false false Kein Stretching verfügbar Vertikal ausgerichtet Andocken

CControlBar::CalcInsideRect

Das Framework ruft diese Funktion auf, um den Clientbereich der Steuerleiste zu berechnen.

virtual void CalcInsideRect(
    CRect& rect,
    BOOL bHorz) const;

Parameter

Rect
Enthält die aktuellen Dimensionen der Steuerleiste. einschließlich der Rahmen.

bHorz
Gibt an, dass der Balken horizontal oder vertikal ausgerichtet ist. Der bHorz-Parameter ist ungleich null, wenn der Balken horizontal ausgerichtet ist, und ist 0, wenn er vertikal ausgerichtet ist.

Hinweise

Diese Funktion wird aufgerufen, bevor die Steuerleiste gezeichnet wird.

Überschreiben Sie diese Funktion, um das Rendering der Rahmen und der Leiste der Steuerleiste anzupassen.

CControlBar::CControlBar

Erstellt ein CControlBar-Objekt.

CControlBar();

CControlBar::D oPaint

Wird vom Framework aufgerufen, um die Rahmen und die Leiste der Steuerleiste zu rendern.

virtual void DoPaint(CDC* pDC);

Parameter

Pdc
Zeigt auf den Gerätekontext, der zum Rendern der Rahmen und des Steuerelements der Steuerleiste verwendet werden soll.

Hinweise

Überschreiben Sie diese Funktion, um das Zeichnungsverhalten der Steuerleiste anzupassen.

Eine weitere Anpassungsmethode besteht darin, die Funktionen und zu überschreiben DrawBordersDrawGripper und benutzerdefinierten Zeichnungscode für die Rahmen und den Zieher hinzuzufügen. Da diese Methoden von der Standardmethode aufgerufen DoPaint werden, ist keine Überschreibung von DoPaint erforderlich.

CControlBar::D rawBorders

Wird vom Framework aufgerufen, um die Rahmen der Steuerleiste zu rendern.

virtual void DrawBorders(
    CDC* pDC,
    CRect& rect);

Parameter

Pdc
Zeigt auf den Gerätekontext, der zum Rendern der Rahmen der Steuerleiste verwendet werden soll.

Rect
Ein CRect -Objekt, das die Abmessungen der Steuerleiste enthält.

Hinweise

Überschreiben Sie diese Funktion, um die Darstellung der Rahmen der Steuerleiste anzupassen.

CControlBar::D rawGuzz

Wird vom Framework aufgerufen, um den Strich der Steuerleiste zu rendern.

virtual void DrawGripper(
    CDC* pDC,
    const CRect& rect);

Parameter

Pdc
Zeigt auf den Gerätekontext, der zum Rendern des Steuerleisten-Steuerelements verwendet werden soll.

Rect
Ein CRect -Objekt, das die Abmessungen des Steuerleisten-Steuerelements enthält.

Hinweise

Überschreiben Sie diese Funktion, um die Darstellung des Steuerleisten-Steuerelements anzupassen.

CControlBar::EnableDocking

Rufen Sie diese Funktion auf, um das Andocken einer Steuerleiste zu ermöglichen.

void EnableDocking(DWORD dwDockStyle);

Parameter

dwDockStyle
Gibt an, ob die Steuerleiste Andocken und die Seiten des übergeordneten Fensters unterstützt, an die die Steuerleiste angedockt werden kann, falls dies unterstützt wird. Dies kann eine oder mehrere der folgenden Sein:

  • CBRS_ALIGN_TOP Ermöglicht das Andocken am oberen Rand des Clientbereichs.

  • CBRS_ALIGN_BOTTOM Ermöglicht das Andocken am unteren Rand des Clientbereichs.

  • CBRS_ALIGN_LEFT Ermöglicht das Andocken auf der linken Seite des Clientbereichs.

  • CBRS_ALIGN_RIGHT Ermöglicht das Andocken auf der rechten Seite des Clientbereichs.

  • CBRS_ALIGN_ANY Ermöglicht das Andocken auf beliebigen Seiten des Clientbereichs.

  • CBRS_FLOAT_MULTI Ermöglicht das Gleitkommaen mehrerer Steuerleisten in einem einzelnen Minirahmenfenster.

Bei 0 (d. h. ohne Flags) wird die Steuerleiste nicht andocken.

Hinweise

Die angegebenen Seiten müssen mit einer der Seiten übereinstimmen, die für das Andocken im Zielrahmenfenster aktiviert sind. Andernfalls kann die Steuerleiste nicht an dieses Rahmenfenster angedockt werden.

CControlBar::GetBarStyle

Rufen Sie diese Funktion auf, um zu bestimmen, welche CBRS_ (Steuerelementleistenstile) derzeit für die Steuerleiste festgelegt sind.

DWORD GetBarStyle();

Rückgabewert

Die aktuellen CBRS_ (Steuerelementleistenstile) für die Steuerleiste. Eine vollständige Liste der verfügbaren Stile finden Sie unter CControlBar::SetBarStyle.

Hinweise

Verarbeitet keine WS_ -Stile (Fensterstil).

CControlBar::GetBorders

Gibt die aktuellen Rahmenwerte für die Steuerleiste zurück.

CRect GetBorders() const;

Rückgabewert

Ein CRect -Objekt, das die aktuelle Breite (in Pixel) jeder Seite des Steuerelementleistenobjekts enthält. Beispielsweise ist der Wert des linken Members des CRect-Objekts die Breite des linken Rahmens.

CControlBar::GetCount

Gibt die Anzahl der Nicht-HWND-Elemente für das CControlBar -Objekt zurück.

int GetCount() const;

Rückgabewert

Die Anzahl der Nicht-HWND-Elemente für das CControlBar -Objekt. Diese Funktion gibt 0 für ein CDialogBar-Objekt zurück.

Hinweise

Der Typ des Elements hängt vom abgeleiteten Objekt ab: Bereiche für CStatusBar-Objekte und Schaltflächen und Trennzeichen für CToolBar-Objekte.

CControlBar::GetDockingFrame

Rufen Sie diese Memberfunktion auf, um einen Zeiger auf das aktuelle Rahmenfenster abzurufen, an das die Steuerleiste angedockt ist.

CFrameWnd* GetDockingFrame() const;

Rückgabewert

Ein Zeiger auf ein Rahmenfenster, falls erfolgreich; andernfalls NULL.

Wenn die Steuerleiste nicht an ein Rahmenfenster angedockt ist (d. h. wenn die Steuerleiste unverankert ist), gibt diese Funktion einen Zeiger auf den übergeordneten CMiniFrameWndzurück.

Hinweise

Weitere Informationen zu andockbaren Steuerleisten finden Sie unter CControlBar::EnableDocking und CFrameWnd::D ockControlBar.

CControlBar::IsFloating

Rufen Sie diese Memberfunktion auf, um zu bestimmen, ob die Steuerleiste unverankert oder angedockt ist.

BOOL IsFloating() const;

Rückgabewert

Ungleich 0 (null), wenn die Steuerleiste unverankert ist; andernfalls 0.

Hinweise

Um den Zustand einer Steuerleiste von docked in floating zu ändern, rufen Sie CFrameWnd::FloatControlBarauf.

CControlBar::m_bAutoDelete

Wenn der Wert ungleich 0 (null) ist, wird das CControlBar-Objekt gelöscht, sobald die Windows-Steuerleiste zerstört wird.

BOOL m_bAutoDelete;

Hinweise

m_bAutoDelete ist eine öffentliche Variable vom Typ BOOL.

Ein Steuerelementleistenobjekt ist in der Regel in ein Framefensterobjekt eingebettet. In diesem Fall ist m_bAutoDelete 0, da das eingebettete Steuerelementleistenobjekt zerstört wird, wenn das Rahmenfenster zerstört wird.

Legen Sie diese Variable auf einen Wert ungleich 0 (null) fest, wenn Sie ein -Objekt auf dem Heap zuordnen CControlBar und nicht aufrufen delete möchten.

CControlBar::m_pInPlaceOwner

Der direkte Besitzer der Steuerleiste.

CWnd* m_pInPlaceOwner;

CControlBar::OnUpdateCmdUI

Diese Memberfunktion wird vom Framework aufgerufen, um den Status der Symbolleiste oder Statusleiste zu aktualisieren.

virtual void OnUpdateCmdUI(
    CFrameWnd* pTarget,
    BOOL bDisableIfNoHndler) = 0;

Parameter

pTarget
Zeigt auf das Hauptrahmenfenster der Anwendung. Dieser Zeiger wird zum Weiterleiten von Updatemeldungen verwendet.

bDisableIfNoHndler
Flag, das angibt, ob ein Steuerelement ohne Updatehandler automatisch als deaktiviert angezeigt werden soll.

Hinweise

Um eine einzelne Schaltfläche oder einen Bereich zu aktualisieren, verwenden Sie das ON_UPDATE_COMMAND_UI-Makro in Ihrer Meldungszuordnung, um einen Updatehandler entsprechend festzulegen. Weitere Informationen zur Verwendung dieses Makros finden Sie unter ON_UPDATE_COMMAND_UI.

OnUpdateCmdUI wird vom Framework aufgerufen, wenn sich die Anwendung im Leerlauf befindet. Das zu aktualisierende Rahmenfenster muss mindestens indirekt ein untergeordnetes Fenster eines sichtbaren Rahmenfensters sein. OnUpdateCmdUI ist ein erweitertes überschreibbares .

CControlBar::SetBarStyle

Rufen Sie diese Funktion auf, um die gewünschten CBRS_ Stile für die Steuerleiste festzulegen.

void SetBarStyle(DWORD dwStyle);

Parameter

dwStyle
Die gewünschten Stile für die Steuerleiste. Dies kann eine oder mehrere der folgenden Sein:

  • CBRS_ALIGN_TOP Ermöglicht das Andocken der Steuerleiste an den oberen Rand des Clientbereichs eines Rahmenfensters.

  • CBRS_ALIGN_BOTTOM Ermöglicht das Andocken der Steuerleiste am unteren Rand des Clientbereichs eines Rahmenfensters.

  • CBRS_ALIGN_LEFT Ermöglicht das Andocken der Steuerleiste an die linke Seite des Clientbereichs eines Rahmenfensters.

  • CBRS_ALIGN_RIGHT Ermöglicht das Andocken der Steuerleiste an die rechte Seite des Clientbereichs eines Rahmenfensters.

  • CBRS_ALIGN_ANY Ermöglicht das Andocken der Steuerleiste an eine beliebige Seite des Clientbereichs eines Rahmenfensters.

  • CBRS_BORDER_TOP bewirkt, dass ein Rahmen am oberen Rand der Steuerleiste gezeichnet wird, wenn er sichtbar ist.

  • CBRS_BORDER_BOTTOM bewirkt, dass ein Rahmen am unteren Rand der Steuerleiste gezeichnet wird, wenn er sichtbar ist.

  • CBRS_BORDER_LEFT bewirkt, dass ein Rahmen am linken Rand der Steuerleiste gezeichnet wird, wenn er sichtbar ist.

  • CBRS_BORDER_RIGHT bewirkt, dass ein Rahmen am rechten Rand der Steuerleiste gezeichnet wird, wenn er sichtbar ist.

  • CBRS_FLOAT_MULTI Ermöglicht das Gleitkommaen mehrerer Steuerleisten in einem einzelnen Minirahmenfenster.

  • CBRS_TOOLTIPS bewirkt, dass QuickInfos für die Steuerleiste angezeigt werden.

  • CBRS_FLYBY bewirkt, dass der Nachrichtentext gleichzeitig mit QuickInfos aktualisiert wird.

  • CBRS_GRIPPER bewirkt, dass ein Zieher ähnlich dem, der für Bänder in einem -Objekt verwendet CReBar wird, für jede von abgeleitete Klasse gezeichnet CControlBar wird.

Hinweise

Wirkt sich nicht auf die einstellungen für WS_ (Fensterstil) aus.

CControlBar::SetBorders

Rufen Sie diese Funktion auf, um die Größe der Rahmen der Steuerleiste festzulegen.

void SetBorders(
    int cxLeft = 0,
    int cyTop = 0,
    int cxRight = 0,
    int cyBottom = 0);

void SetBorders(LPCRECT lpRect);

Parameter

cxLeft
Die Breite (in Pixel) des linken Rahmens der Steuerleiste.

cyTop
Die Höhe (in Pixel) des oberen Rahmens der Steuerleiste.

cxRight
Die Breite (in Pixel) des rechten Rahmens der Steuerleiste.

cyBottom
Die Höhe (in Pixel) des unteren Rahmens der Steuerleiste.

lpRect
Ein Zeiger auf ein CRect-Objekt, das die aktuelle Breite (in Pixel) jedes Rahmens des Steuerelementleistenobjekts enthält.

Beispiel

Im folgenden Codebeispiel wird der obere und untere Rand der Steuerleiste auf 5 Pixel und der linke und rechte Rand auf 2 Pixel festgelegt:

CControlBar &m_myControlBar = m_Rebar;
m_myControlBar.SetBorders(2, 5, 2, 5);

CControlBar::SetInPlaceOwner

Ändert den direkten Besitzer einer Steuerleiste.

void SetInPlaceOwner(CWnd* pWnd);

Parameter

pWnd
Ein Zeiger auf ein CWnd-Objekt.

Hinweise

Siehe auch

MFC-Beispiel STRGBARS
CWnd-Klasse
Hierarchiediagramm
CToolBar-Klasse
CDialogBar-Klasse
CStatusBar-Klasse
CReBar-Klasse