Freigeben über


CStatusBar-Klasse

Eine Steuerleiste mit einer Zeile von Textausgabebereichen ("Indikatoren" genannt).

Syntax

class CStatusBar : public CControlBar

Member

Öffentliche Konstruktoren

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

Öffentliche Methoden

Name Beschreibung
CStatusBar::CommandToIndex Ruft den Index für eine angegebene Indikator-ID ab.
CStatusBar::Create Erstellt die Statusleiste, fügt sie an das CStatusBar Objekt an und legt die anfängliche Schriftart und Balkenhöhe fest.
CStatusBar::CreateEx Erstellt ein CStatusBar Objekt mit zusätzlichen Formatvorlagen für das eingebettete CStatusBarCtrl Objekt.
CStatusBar::D rawItem Wird aufgerufen, wenn sich ein visueller Aspekt eines Besitzer-Draw-Statusleisten-Steuerelements ändert.
CStatusBar::GetItemID Ruft die Indikator-ID für einen bestimmten Index ab.
CStatusBar::GetItemRect Ruft das Anzeigerechteck für einen bestimmten Index ab.
CStatusBar::GetPaneInfo Ruft Die Indikator-ID, -Formatvorlage und -breite für einen bestimmten Index ab.
CStatusBar::GetPaneStyle Ruft den Indikatorstil für einen bestimmten Index ab.
CStatusBar::GetPaneText Ruft Indikatortext für einen bestimmten Index ab.
CStatusBar::GetStatusBarCtrl Ermöglicht direkten Zugriff auf das zugrunde liegende allgemeine Steuerelement.
CStatusBar::SetIndicators Legt Indikator-IDs fest.
CStatusBar::SetPaneInfo Legt die Indikator-ID, -Formatvorlage und -breite für einen bestimmten Index fest.
CStatusBar::SetPaneStyle Legt den Indikatorstil für einen bestimmten Index fest.
CStatusBar::SetPaneText Legt Den Indikatortext für einen bestimmten Index fest.

Hinweise

Die Ausgabebereiche werden häufig als Nachrichtenzeilen und als Statusindikatoren verwendet. Beispiele hierfür sind die Hilfezeilen des Menüs, die den ausgewählten Menübefehl kurz erläutern, sowie die Indikatoren, die den Status der BILDLAUFSPERRE, DIE NUM-TASTE und andere Tasten anzeigen.

Mit CStatusBar::GetStatusBarCtrl, einer Memberfunktion, die mit MFC 4.0 neu ist, können Sie die Unterstützung des allgemeinen Windows-Steuerelements für die Anpassung der Statusleiste und zusätzliche Funktionen nutzen. CStatusBar member functions give you most of the functionality of the Windows common controls; Wenn Sie jedoch anrufen GetStatusBarCtrl, können Sie Ihren Statusleisten noch mehr Merkmale einer Windows 95/98-Statusleiste zugeben. Wenn Sie aufrufen GetStatusBarCtrl, wird ein Verweis auf ein CStatusBarCtrl Objekt zurückgegeben. Weitere Informationen zum Entwerfen von Symbolleisten mit allgemeinen Windows-Steuerelementen finden Sie unter CStatusBarCtrl . Allgemeine Informationen zu allgemeinen Steuerelementen finden Sie unter "Allgemeine Steuerelemente " im Windows SDK.

Das Framework speichert Indikatorinformationen in einem Array mit dem äußerst linken Indikator an Position 0. Wenn Sie eine Statusleiste erstellen, verwenden Sie ein Array von Zeichenfolgen-IDs, die das Framework den entsprechenden Indikatoren zuordnet. Anschließend können Sie entweder eine Zeichenfolgen-ID oder einen Index verwenden, um auf einen Indikator zuzugreifen.

Standardmäßig ist der erste Indikator "elastisch": Es nimmt die Statusleistenlänge ein, die nicht von den anderen Indikatorbereichen verwendet wird, sodass die anderen Bereiche rechtsbündig ausgerichtet sind.

Führen Sie die folgenden Schritte aus, um eine Statusleiste zu erstellen:

  1. Erstellen Sie das CStatusBar Objekt.

  2. Rufen Sie die Create-Funktion (oder CreateEx) auf, um das Statusleistenfenster zu erstellen und an das CStatusBar Objekt anzufügen.

  3. Rufen Sie SetIndicators auf, um jedem Indikator eine Zeichenfolgen-ID zuzuordnen.

Es gibt drei Möglichkeiten, den Text in einem Statusleistenbereich zu aktualisieren:

  1. Rufen Sie CWnd::SetWindowText auf, um den Text nur im Bereich 0 zu aktualisieren.

  2. Rufen Sie CCmdUI::SetText im ON_UPDATE_COMMAND_UI Handler der Statusleiste auf.

  3. Rufen Sie SetPaneText auf, um den Text für einen beliebigen Bereich zu aktualisieren.

Rufen Sie SetPaneStyle auf, um die Formatvorlage eines Statusleistenbereichs zu aktualisieren.

Weitere Informationen zur Verwendung CStatusBarfinden Sie im Artikel Status bar Implementation in MFC und Technical Note 31 : Control Bars.

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CControlBar

CStatusBar

Anforderungen

Header: afxext.h

CStatusBar::CommandToIndex

Ruft den Indikatorindex für eine bestimmte ID ab.

int CommandToIndex(UINT nIDFind) const;

Parameter

nIDFind
Zeichenfolgen-ID des Indikators, dessen Index abgerufen werden soll.

Rückgabewert

Der Index des Indikators bei erfolgreicher Ausführung; -1, wenn nicht erfolgreich.

Hinweise

Der Index des ersten Indikators ist 0.

CStatusBar::Create

Erstellt eine Statusleiste (ein untergeordnetes Fenster) und ordnet sie dem Objekt zu CStatusBar .

virtual BOOL Create(
    CWnd* pParentWnd,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

Parameter

pParentWnd
Zeiger auf das CWnd-Objekt , dessen Windows-Fenster das übergeordnete Element der Statusleiste ist.

dwStyle
Die Statusleistenart. Zusätzlich zu den standardmäßigen Windows-Stilen werden diese Stile unterstützt.

  • CBRS_TOP Steuerelementleiste befindet sich oben im Rahmenfenster.

  • CBRS_BOTTOM Steuerelementleiste befindet sich am unteren Rand des Rahmenfensters.

  • CBRS_NOALIGN Steuerelementleiste wird nicht neu positioniert, wenn die Größe des übergeordneten Elements geändert wird.

Nid
Die Untergeordnete Fenster-ID der Symbolleiste.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Legt außerdem die ursprüngliche Schriftart fest und legt die Höhe der Statusleiste auf einen Standardwert fest.

CStatusBar::CreateEx

Rufen Sie diese Funktion auf, um eine Statusleiste (ein untergeordnetes Fenster) zu erstellen und sie dem CStatusBar Objekt zuzuordnen.

virtual BOOL CreateEx(
    CWnd* pParentWnd,
    DWORD dwCtrlStyle = 0,
    DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
    UINT nID = AFX_IDW_STATUS_BAR);

Parameter

pParentWnd
Zeiger auf das CWnd-Objekt , dessen Windows-Fenster das übergeordnete Element der Statusleiste ist.

dwCtrlStyle
Zusätzliche Formatvorlagen für die Erstellung des eingebetteten CStatusBarCtrl-Objekts . Der Standardwert gibt eine Statusleiste ohne Ziehgriff oder QuickInfo-Unterstützung an. Unterstützte Statusleistenarten sind:

  • SBARS_SIZEGRIP Das Statusleisten-Steuerelement enthält einen Ziehgriff am rechten Ende der Statusleiste. Ein Ziehgriff ähnelt einem Größenrahmen; Es handelt sich um einen rechteckigen Bereich, auf den der Benutzer klicken und ziehen kann, um die Größe des übergeordneten Fensters zu ändern.

  • SBT_TOOLTIPS Die Statusleiste unterstützt QuickInfos.

Ausführliche Informationen zu diesen Formatvorlagen finden Sie unter Einstellungen für das CStatusBarCtrl.

dwStyle
Die Statusleistenart. Der Standardwert gibt an, dass unten im Rahmenfenster eine sichtbare Statusleiste erstellt wird. Wenden Sie eine beliebige Kombination von Formatvorlagen für Statusleistensteuerelemente an, die in Fensterformatvorlagen und CDialogBar::Create aufgeführt sind. Dieser Parameter sollte jedoch immer die formatvorlagen WS_CHILD und WS_VISIBLE enthalten.

Nid
Die Untergeordnete Fenster-ID der Statusleiste.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Diese Funktion legt auch die ursprüngliche Schriftart fest und legt die Höhe der Statusleiste auf einen Standardwert fest.

Verwenden Sie CreateExanstelle von "Erstellen", wenn bestimmte Formatvorlagen während der Erstellung des eingebetteten Statusleisten-Steuerelements vorhanden sein müssen. Legen Sie beispielsweise dwCtrlStyle auf SBT_TOOLTIPS fest, um QuickInfos in einem Statusleistenobjekt anzuzeigen.

CStatusBar::CStatusBar

Erstellt ein CStatusBar Objekt, erstellt bei Bedarf eine Standardschriftart für die Statusleiste und legt die Schriftarteigenschaften auf Standardwerte fest.

CStatusBar();

CStatusBar::D rawItem

Diese Memberfunktion wird vom Framework aufgerufen, wenn sich ein visueller Aspekt einer vom Besitzer gezeichneten Statusleiste ändert.

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);

Parameter

lpDrawItemStruct
Ein Zeiger auf eine DRAWITEMSTRUCT-Struktur , die Informationen zum erforderlichen Zeichnungstyp enthält.

Hinweise

Das itemAction Element der DRAWITEMSTRUCT Struktur definiert die Zeichnungsaktion, die ausgeführt werden soll. Überschreiben Sie diese Memberfunktion, um die Zeichnung für ein Besitzer-Draw-Objekt CStatusBar zu implementieren. Die Anwendung sollte alle GDI-Objekte (Graphics Device Interface) wiederherstellen, die für den in lpDrawItemStruct bereitgestellten Anzeigekontext ausgewählt sind, bevor diese Memberfunktion beendet wird.

CStatusBar::GetItemID

Gibt die ID des Indikators zurück, der durch nIndex angegeben wird.

UINT GetItemID(int nIndex) const;

Parameter

nIndex
Index des Indikators, dessen ID abgerufen werden soll.

Rückgabewert

Die ID des indikators, der durch nIndex angegeben wird.

CStatusBar::GetItemRect

Kopiert die Koordinaten des Indikators, der durch nIndex angegeben wird, in die Struktur, auf die durch lpRect verwiesen wird.

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Parameter

nIndex
Index des Indikators, dessen Rechteckkoordinaten abgerufen werden sollen.

lpRect
Verweist auf eine RECT-Struktur oder ein CRect-Objekt , das die Koordinaten des indikators empfängt, der durch nIndex angegeben wird.

Hinweise

Koordinaten sind in Pixeln relativ zur oberen linken Ecke der Statusleiste.

CStatusBar::GetPaneInfo

Legt "nID", "nStyle" und "cxWidth " auf die ID, den Stil und die Breite des Indikatorbereichs an der durch nIndex angegebenen Position fest.

void GetPaneInfo(
    int nIndex,
    UINT& nID,
    UINT& nStyle,
    int& cxWidth) const;

Parameter

nIndex
Index des Bereichs, dessen Informationen abgerufen werden sollen.

Nid
Verweis auf einen UINT, der auf die ID des Bereichs festgelegt ist.

nStyle
Verweisen auf einen UINT, der auf die Formatvorlage des Bereichs festgelegt ist.

cxWidth
Verweisen auf eine ganze Zahl, die auf die Breite des Bereichs festgelegt ist.

CStatusBar::GetPaneStyle

Rufen Sie diese Memberfunktion auf, um den Stil des Bereichs einer Statusleiste abzurufen.

UINT GetPaneStyle(int nIndex) const;

Parameter

nIndex
Index des Bereichs, dessen Format abgerufen werden soll.

Rückgabewert

Die Formatvorlage des durch nIndex angegebenen Statusleistenbereichs.

Hinweise

Die Formatvorlage eines Bereichs bestimmt, wie der Bereich angezeigt wird.

Eine Liste der verfügbaren Formatvorlagen für Statusleisten finden Sie unter Erstellen.

CStatusBar::GetPaneText

Rufen Sie diese Memberfunktion auf, um den Text abzurufen, der in einem Statusleistenbereich angezeigt wird.

CString GetPaneText(int nIndex) const;  void GetPaneText(int nIndex, CString& rString) const;

Parameter

nIndex
Index des Bereichs, dessen Text abgerufen werden soll.

rString
Ein Verweis auf ein CString-Objekt , das den abzurufenden Text enthält.

Rückgabewert

Ein CString Objekt, das den Text des Bereichs enthält.

Hinweise

Die zweite Form dieser Memberfunktion füllt ein CString Objekt mit dem Zeichenfolgentext aus.

CStatusBar::GetStatusBarCtrl

Diese Memberfunktion ermöglicht direkten Zugriff auf das zugrunde liegende allgemeine Steuerelement.

CStatusBarCtrl& GetStatusBarCtrl() const;

Rückgabewert

Enthält einen Verweis auf ein CStatusBarCtrl -Objekt.

Hinweise

Wird verwendet GetStatusBarCtrl , um die Funktionalität des allgemeinen Steuerelements der Windows-Statusleiste zu nutzen und die Unterstützung von CStatusBarCtrl für die Statusleistenanpassung zu nutzen. Beispielsweise können Sie mithilfe des allgemeinen Steuerelements eine Formatvorlage angeben, die einen Ziehgriff auf die Statusleiste enthält, oder Sie können eine Formatvorlage angeben, die die Statusleiste oben im Clientbereich des übergeordneten Fensters anzeigt.

Allgemeine Informationen zu allgemeinen Steuerelementen finden Sie unter "Allgemeine Steuerelemente " im Windows SDK.

CStatusBar::SetIndicators

Legt die ID jedes Indikators auf den Wert fest, der durch das entsprechende Element des Arrays lpIDArray angegeben wird, die durch jede ID angegebene Zeichenfolgenressource lädt und den Text des Indikators auf die Zeichenfolge festlegt.

BOOL SetIndicators(
    const UINT* lpIDArray,
    int nIDCount);

Parameter

lpIDArray
Zeigen Sie auf ein Array von IDs.

nIDCount
Die Anzahl der Elemente im Array, auf die von lpIDArray verwiesen wird.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

CStatusBar::SetPaneInfo

Legt den angegebenen Indikatorbereich auf eine neue ID, einen neuen Stil und eine neue Breite fest.

void SetPaneInfo(
    int nIndex,
    UINT nID,
    UINT nStyle,
    int cxWidth);

Parameter

nIndex
Index des Indikatorbereichs, dessen Format festgelegt werden soll.

Nid
Neue ID für den Indikatorbereich.

nStyle
Neue Formatvorlage für den Indikatorbereich.

cxWidth
Neue Breite für den Indikatorbereich.

Hinweise

Die folgenden Indikatorstile werden unterstützt:

  • SBPS_NOBORDERS Keine 3D-Rahmenlinie um den Bereich.

  • SBPS_POPOUT Umgekehrter Rahmen, sodass Text "ausfüllt".

  • SBPS_DISABLED Text nicht zeichnen.

  • SBPS_STRETCH Bereich "Strecken" aus, um nicht genutzten Platz auszufüllen. Nur ein Bereich pro Statusleiste kann diese Formatvorlage aufweisen.

  • SBPS_NORMAL Keine Strecken, Rahmen oder Popups.

CStatusBar::SetPaneStyle

Rufen Sie diese Memberfunktion auf, um die Formatvorlage des Bereichs einer Statusleiste festzulegen.

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

Parameter

nIndex
Index des Bereichs, dessen Format festgelegt werden soll.

nStyle
Formatvorlage des Bereichs, dessen Format festgelegt werden soll.

Hinweise

Die Formatvorlage eines Bereichs bestimmt, wie der Bereich angezeigt wird.

Eine Liste der für Statusleisten verfügbaren Formatvorlagen finden Sie unter SetPaneInfo.

CStatusBar::SetPaneText

Rufen Sie diese Memberfunktion auf, um den Bereichstext auf die Zeichenfolge festzulegen, auf die von lpszNewText verwiesen wird.

BOOL SetPaneText(
    int nIndex,
    LPCTSTR lpszNewText,
    BOOL bUpdate = TRUE);

Parameter

nIndex
Index des Bereichs, dessen Text festgelegt werden soll.

lpszNewText
Zeigen Sie auf den neuen Bereichstext.

bUpdate
Wenn TRUE, wird der Bereich nach dem Festlegen des Texts ungültig.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

Nachdem Sie aufgerufen SetPaneTexthaben, müssen Sie einen Ui-Aktualisierungshandler hinzufügen, um den neuen Text in der Statusleiste anzuzeigen.

Beispiel

//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);

 

//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)

 

void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
   pCmdUI->Enable();
}

Siehe auch

MFC-Beispiel STRGBARS
MFC-Beispiel-DLGCBR32
CControlBar Class
Hierarchiediagramm
CStatusBarCtrl-Klasse
CControlBar Class