Freigeben über


CMFCStatusBar-Klasse

Die CMFCStatusBar Klasse implementiert eine Statusleiste ähnlich der CStatusBar Klasse. Die CMFCStatusBar -Klasse verfügt jedoch über Funktionen, die von der CStatusBar -Klasse nicht bereitgestellt werden. Beispielsweise kann die Klasse Bilder, Animationen und Statusanzeigen anzeigen und auf einen Mausdoppelklick reagieren.

Ausführliche Informationen finden Sie im Quellcode des Ordners VC\atlmfc\src\mfc der Visual Studio-Installation.

Syntax

class CMFCStatusBar : public CPane

Member

Öffentliche Methoden

Name Beschreibung
CMFCStatusBar::CalcFixedLayout (Außerkraftsetzungen CBasePane::CalcFixedLayout.)
CMFCStatusBar::CommandToIndex
CMFCStatusBar::Create Erstellt eine Steuerelementleiste und fügt sie an das CPane -Objekt an. (Außerkraftsetzungen CPane::Create.)
CMFCStatusBar::CreateEx Erstellt eine Steuerelementleiste und fügt sie an das CPane -Objekt an. (Außerkraftsetzungen CPane::CreateEx.)
CMFCStatusBar::D oesAllowDynInsertBefore Bestimmt, ob ein anderer Bereich dynamisch zwischen diesem Bereich und dem übergeordneten Frame eingefügt werden kann. (Außerkraftsetzungen CBasePane::D oesAllowDynInsertBefore.)
CMFCStatusBar::EnablePaneDoubleClick Aktiviert oder deaktiviert die Behandlung von Mausklicks auf der Statusleiste.
CMFCStatusBar::EnablePaneProgressBar Zeigt eine Statusleiste im angegebenen Bereich an.
CMFCStatusBar::GetCount Gibt die Anzahl der Bereiche auf der Statusleiste zurück.
CMFCStatusBar::GetDrawExtendedArea
CMFCStatusBar::GetExtendedArea
CMFCStatusBar::GetItemID
CMFCStatusBar::GetItemRect
CMFCStatusBar::GetPaneInfo
CMFCStatusBar::GetPaneProgress
CMFCStatusBar::GetPaneStyle Gibt das Bereichsformat zurück. (Außerkraftsetzungen CBasePane::GetPaneStyle.)
CMFCStatusBar::GetPaneText
CMFCStatusBar::GetPaneWidth Gibt die Breite des angegebenen Bereichs der Statusleiste in Pixeln zurück.
CMFCStatusBar::GetTipText Gibt den QuickInfo-Text für den angegebenen Bereich der Statusleiste zurück.
CMFCStatusBar::InvalidatePaneContent Ungültig wird der angegebene Bereich, und der Inhalt wird neu gezeichnet.
CMFCStatusBar::P reCreateWindow Vom Framework aufgerufen, bevor das Windows-Fenster erstellt wird, das diesem CWnd Objekt zugeordnet ist. (Außerkraftsetzungen CWnd::P reCreateWindow.)
CMFCStatusBar::SetDrawExtendedArea
CMFCStatusBar::SetIndicators
CMFCStatusBar::SetPaneAnimation Weist dem angegebenen Bereich eine Animation zu.
CMFCStatusBar::SetPaneBackgroundColor Legt die Hintergrundfarbe für den angegebenen Bereich der Statusleiste fest.
CMFCStatusBar::SetPaneIcon Legt das Indikatorsymbol für den angegebenen Bereich der Statusleiste fest.
CMFCStatusBar::SetPaneInfo
CMFCStatusBar::SetPaneProgress Legt den aktuellen Fortschritt der Statusleiste für den angegebenen Bereich der Statusleiste fest.
CMFCStatusBar::SetPaneStyle Legt die Formatvorlage des Bereichs fest. (Außerkraftsetzungen CBasePane::SetPaneStyle.)
CMFCStatusBar::SetPaneText
CMFCStatusBar::SetPaneTextColor Legt die Textfarbe für den angegebenen Bereich der Statusleiste fest.
CMFCStatusBar::SetPaneWidth Legt die Breite in Pixel des angegebenen Bereichs der Statusleiste fest.
CMFCStatusBar::SetTipText Legt den QuickInfo-Text für den angegebenen Bereich der Statusleiste fest.

Geschützte Methoden

Name Beschreibung
CMFCStatusBar::OnDrawPane Wird vom Framework aufgerufen, wenn der Bereich der Statusleiste neu gezeichnet wird.

Hinweise

Das folgende Diagramm zeigt eine Abbildung der Statusleiste aus der Demo-Beispielanwendung der Statusleiste.

Beispiel für CMFCStatusBar.

Beispiele

Im folgenden Beispiel werden die lokalen Variablen veranschaulicht, die von der Anwendung zum Aufrufen verschiedener Methoden in der CMFCStatusBar Klasse verwendet werden. Diese Variablen werden in StatusBarDemoView.h deklariert. Der Hauptrahmen wird in MainFrm.h deklariert, das Dokument wird in StatusBarDemoDoc.h deklariert, und die Ansicht wird in StatusBarDemoView.h deklariert. Dieser Codeausschnitt ist Teil des Demobeispiels für die Statusleiste.

int m_nProgressCurr;
BOOL m_bInProgress;

CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;

CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;

Im folgenden Beispiel wird veranschaulicht, wie Sie einen Verweis auf CMFCStatusBar ein Objekt abrufen, indem Sie die GetStatusBar Methode in MainFrm.h einführen und diese Methode dann aus der GetStatusBar Methode in StatusBarDemoView.h aufrufen. Dieser Codeausschnitt ist Teil des Demobeispiels für die Statusleiste.

// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
   return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
   return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}

Im folgenden Beispiel wird veranschaulicht, wie verschiedene Methoden in der CMFCStatusBar Klasse in StatusBarDemoView.cpp aufgerufen werden. Die Konstanten werden in MainFrm.h deklariert. Das Beispiel zeigt, wie Sie das Symbol festlegen, den QuickInfo-Text des Statusleistenbereichs festlegen, eine Statusleiste im angegebenen Bereich anzeigen, dem angegebenen Bereich eine Animation zuweisen, den Text und die Breite des Statusleistenbereichs festlegen und die aktuelle Statusanzeige der Statusleiste für den Statusleistenbereich festlegen. Dieser Codeausschnitt ist Teil des Demobeispiels für die Statusleiste.

// in MainFrm.h
const int nStatusIcon = 0;
const int nStatusInfo = 1;
const int nStatusProgress = 2;
const int nStatusLabel = 3;
const int nStatusAnimation = 4;
// in StatusBarDemoView.cpp
GetStatusBar().SetPaneIcon(nStatusIcon, m_bmpIcon1);
GetStatusBar().SetTipText(nStatusIcon, _T("This is a tooltip"));
GetStatusBar().EnablePaneProgressBar(nStatusProgress, PROGRESS_MAX);
GetStatusBar().SetPaneAnimation(nStatusAnimation, NULL);
GetStatusBar().SetPaneAnimation(nStatusAnimation, m_imlStatusAnimation);
GetStatusBar().SetPaneText(nStatusAnimation, _T(""));
GetStatusBar().SetPaneWidth(nStatusAnimation, 16);
GetStatusBar().SetPaneProgress(nStatusProgress, m_nProgressCurr);

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CBasePane

CPane

CMFCStatusBar

Anforderungen

Kopfzeile: afxstatusbar.h

CMFCStatusBar::CalcFixedLayout

virtual CSize CalcFixedLayout(
    BOOL bStretch,
    BOOL bHorz);

Parameter

[in] bStretch
[in] bHorz

Rückgabewert

Bemerkungen

CMFCStatusBar::CommandToIndex

int CommandToIndex(UINT nIDFind) const;

Parameter

[in] nIDFind

Rückgabewert

Bemerkungen

CMFCStatusBar::Create

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

Parameter

[in] pParentWnd
[in] dwStyle
[in] nID

Rückgabewert

Bemerkungen

CMFCStatusBar::CreateEx

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

Parameter

[in] pParentWnd
[in] dwCtrlStyle
[in] dwStyle
[in] nID

Rückgabewert

Bemerkungen

CMFCStatusBar::D oesAllowDynInsertBefore

virtual BOOL DoesAllowDynInsertBefore() const;

Rückgabewert

Bemerkungen

CMFCStatusBar::EnablePaneDoubleClick

Aktiviert oder deaktiviert die Behandlung von Mausklicks auf der Statusleiste.

void EnablePaneDoubleClick(BOOL bEnable=TRUE);

Parameter

bEnable
[in] Wenn WAHR, aktivieren Sie die Verarbeitung des Doppelklickens mit der Maus. Deaktivieren Sie andernfalls die Verarbeitung des Mausklicks.

Hinweise

Wenn die Statusleiste zum Verarbeiten von Doppelklicks aktiviert ist, sendet Windows die WM_COMMAND-Benachrichtigung zusammen mit einer Ressourcen-ID an den Besitzer der Statusleiste jedes Mal, wenn der Benutzer auf den Statusleistenbereich doppelklippelt.

CMFCStatusBar::EnablePaneProgressBar

Zeigt eine Statusleiste im angegebenen Bereich an.

void EnablePaneProgressBar(
    int nIndex,
    long nTotal=100,
    BOOL bDisplayText=FALSE,
    COLORREF clrBar=-1,
    COLORREF clrBarDest=-1,
    COLORREF clrProgressText=-1);

Parameter

nIndex
[in] Gibt den Index des Bereichs an, dessen Statusanzeige aktiviert werden soll.

nTotal
[in] Gibt den Maximalwert für die Statusanzeige an.

bDisplayText
[in] Gibt an, ob die Statusanzeige den aktuellen Statuswert anzeigen soll.

clrBar
[in] Gibt die Hintergrundfarbe der Statusleiste an.

clrBarDest
[in] Gibt die sekundäre Farbe des Hintergrunds der Statusleiste an. Verwenden Sie einen anderen Wert als clrBar , um eine Farbe zu füllen, die in einen Farbverlauf gemischt ist.

clrProgressText
[in] Gibt die Farbe des Texts der Statusleiste an.

Hinweise

Wenn Sie den Statusanzeigenaufruf EnablePaneProgressBar deaktivieren möchten, wobei "nTotal " auf "-1" festgelegt ist. Standardmäßig ist "nTotal " auf 100 festgelegt. Daher benötigen Sie keine zusätzlichen Berechnungen, um den Fortschritt als Prozentsatz anzuzeigen.

Sie sollten unterschiedliche Werte für clrBar und clrBarDest übergeben, sodass die Hintergrundfarbe der Statusleiste eine Farbmischung in einen Farbverlauf anzeigt. .

Rufen Sie zum Festlegen des aktuellen Fortschritts die CMFCStatusBar::SetPaneProgress-Methode auf.

CMFCStatusBar::GetCount

Ruft die Anzahl der Bereiche in der Statusleiste ab.

int GetCount() const;

Rückgabewert

Die Anzahl der Bereiche in der Statusleiste.

CMFCStatusBar::GetDrawExtendedArea

BOOL GetDrawExtendedArea() const;

Rückgabewert

Bemerkungen

CMFCStatusBar::GetExtendedArea

virtual BOOL GetExtendedArea(CRect& rect) const;

Parameter

[in] rect

Rückgabewert

Bemerkungen

CMFCStatusBar::GetItemID

UINT GetItemID(int nIndex) const;

Parameter

[in] nIndex

Rückgabewert

Bemerkungen

CMFCStatusBar::GetItemRect

void GetItemRect(
    int nIndex,
    LPRECT lpRect) const;

Parameter

[in] nIndex
[in] lpRect

Hinweise

CMFCStatusBar::GetPaneInfo

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

Parameter

[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth

Hinweise

CMFCStatusBar::GetPaneProgress

long GetPaneProgress(int nIndex) const;

Parameter

[in] nIndex

Rückgabewert

Bemerkungen

CMFCStatusBar::GetPaneStyle

UINT GetPaneStyle(int nIndex) const;

Parameter

[in] nIndex

Rückgabewert

Bemerkungen

CMFCStatusBar::GetPaneText

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

CString GetPaneText(int nIndex) const;

Parameter

[in] nIndex
[in] s

Rückgabewert

Bemerkungen

CMFCStatusBar::GetPaneWidth

Ruft die Breite des Bereichs einer Statusleiste ab.

int GetPaneWidth(int nIndex) const;

Parameter

nIndex
[in] Gibt den Index des Statusleistenbereichs an.

Rückgabewert

Die Breite des Statusleistenbereichs, der nIndex angibt; andernfalls 0, wenn kein Statusleistenbereich vorhanden ist.

CMFCStatusBar::GetTipText

Rufen Sie den QuickInfo-Text des Bereichs einer Statusleiste ab.

CString GetTipText(int nIndex) const;

Parameter

nIndex
[in] Gibt den Index des Bereichs an, für den QuickInfo-Text abgerufen werden soll.

Rückgabewert

Der QuickInfo-Text des Statusleistenbereichs, der nIndex angibt. Andernfalls ist die leere Zeichenfolge, wenn für den angegebenen nIndex kein Statusleistenbereich vorhanden ist oder der QuickInfo-Text leer ist.

CMFCStatusBar::InvalidatePaneContent

Ungültiges Zeichnen des Statusleistenbereichs und Neuzeichnen des Inhalts.

void InvalidatePaneContent(int nIndex);

Parameter

nIndex
[in] Gibt den Index des Bereichs an, dessen Inhalt ungültig und neu gezeichnet werden soll.

Hinweise

Wenn die Statusleiste ungültig ist, wird sie für die Neuauszeichnung markiert. Windows bewirbt sie erneut, wenn die UpdateWindow Methode eine WM_PAINT Nachricht an die OnPaint Methode sendet.

CMFCStatusBar::OnDrawPane

Zeichnen Sie den Bereich der Statusleiste neu.

virtual void OnDrawPane(
    CDC* pDC,
    CMFCStatusBarPaneInfo* pPane);

Parameter

pDC
[in] Ein Zeiger auf einen Gerätekontext für die Zeichnung.

pPane
[in] Ein Zeiger auf eine CMFCStatusBarPaneInfo Struktur, die die Informationen zum Zuschnitt des Bereichs enthält.

Hinweise

OnDrawPane Standardmäßig wird der Bereich mithilfe des Gerätekontexts pDC entsprechend der Formatvorlage und dem Inhalt des Bereichs neu gezeichnet.

Überschreiben Sie diese Methode in einer CMFCStatusBarabgeleiteten Klasse, um die Darstellung eines Bereichs anzupassen.

CMFCStatusBar::P reCreateWindow

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

Parameter

[in] Cs

Rückgabewert

Bemerkungen

CMFCStatusBar::SetDrawExtendedArea

void SetDrawExtendedArea(BOOL bSet = TRUE);

Parameter

[in] bSet

Hinweise

CMFCStatusBar::SetIndicators

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

Parameter

[in] lpIDArray
[in] nIDCount

Rückgabewert

Bemerkungen

CMFCStatusBar::SetPaneAnimation

Weist dem angegebenen Bereich eine Animation zu.

void SetPaneAnimation(
    int nIndex,
    HIMAGELIST hImageList,
    UINT nFrameRate=500,
    BOOL bUpdate=TRUE);

Parameter

nIndex
[in] Gibt den Index des Bereichs an, dem Sie ihm eine Animation zuweisen möchten.

hImageList
[in] Gibt ein Handle für die Bildliste an, die die Animationsframes enthält.

nFrameRate
[in] Gibt die Framerate für die Animation in Millisekunden an.

bUpdate
[in] Wenn TRUE, aktualisieren Sie den Bereichsinhalt sofort. Andernfalls wird der Bereichsinhalt aktualisiert, wenn er ungültig ist.

Hinweise

Wenn Sie die aktuelle Animation deaktivieren möchten, rufen Sie den Aufruf SetPaneAnimation auf hImageList NULL auf.

CMFCStatusBar::SetPaneBackgroundColor

Legt die Hintergrundfarbe des Statusleistenbereichs fest.

void SetPaneBackgroundColor(
    int nIndex,
    COLORREF clrBackground=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Parameter

nIndex
[in] Gibt den Index des Bereichs an, für den eine neue Hintergrundfarbe festgelegt werden soll.

clrBackground
[in] Gibt die neue Hintergrundfarbe an.

bUpdate
[in] Wenn TRUE, aktualisieren Sie den Bereichsinhalt sofort. Aktualisieren Sie andernfalls den Bereichsinhalt erst, wenn der Bereich durch eine andere Methode ungültig ist.

CMFCStatusBar::SetPaneIcon

Legen Sie das Symbol des Statusleistenbereichs fest.

void SetPaneIcon(
    int nIndex,
    HICON hIcon,
    BOOL bUpdate=TRUE);

void SetPaneIcon(
    int nIndex,
    HBITMAP hBmp,
    COLORREF clrTransparent=RGB(255, 0, 255),
    BOOL bUpdate=TRUE);

Parameter

nIndex
[in] Gibt den Index des Bereichs an, für den das Bild festgelegt werden soll.

hIcon
[in] Gibt ein Handle für das Symbol an, das als Bereichsbild festgelegt werden soll.

bUpdate
[in] Gibt an, ob der Bereichsinhalt sofort aktualisiert werden soll.

hBmp
[in] Gibt ein Handle für die Bitmap an, die als Bereichsbild festgelegt werden soll.

clrTransparent
[in] Gibt die transparente Farbe der Bitmap an, die der hBmp angibt.

Hinweise

Sie können entweder HICON oder HBITMAP zusammen mit der transparenten Farbe übergeben, um das Bild des Bereichs festzulegen. Wenn Sie das Bild nicht mehr anzeigen möchten, übergeben Sie den NULL-Wert als Bildziehpunkt.

Wenn eine animation ausgeführt wird, die CMFCStatusBar::SetPaneAnimation festgelegt hat, wird die Animation beendet.

CMFCStatusBar::SetPaneInfo

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

Parameter

[in] nIndex
[in] nID
[in] nStyle
[in] cxWidth

Hinweise

CMFCStatusBar::SetPaneProgress

Legen Sie die aktuelle Statusanzeige der Statusleiste für den angegebenen Bereich fest.

void SetPaneProgress(
    int nIndex,
    long nCurr,
    BOOL bUpdate=TRUE);

Parameter

nIndex
[in] Gibt den Index des Bereichs an, für den die Statusanzeige aktualisiert werden soll.

nCurr
[in] Gibt den aktuellen Wert des Statusindikators an.

bUpdate
[in] Gibt an, ob der Bereich sofort aktualisiert werden soll.

Hinweise

Rufen Sie diese Methode auf, wenn Sie die Statusanzeige für die Statusanzeige im angegebenen Bereich aktualisieren möchten.

Um diese Funktion für den angegebenen Bereich zu verwenden, müssen Sie zuerst CMFCStatusBar::EnablePaneProgressBar aufrufen.

CMFCStatusBar::SetPaneStyle

void SetPaneStyle(
    int nIndex,
    UINT nStyle);

Parameter

[in] nIndex
[in] nStyle

Hinweise

CMFCStatusBar::SetPaneText

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

Parameter

[in] nIndex
[in] lpszNewText
[in] bUpdate

Rückgabewert

Bemerkungen

CMFCStatusBar::SetPaneTextColor

Legt die Textfarbe des angegebenen Bereichs fest.

void SetPaneTextColor(
    int nIndex,
    COLORREF clrText=(COLORREF)-1,
    BOOL bUpdate=TRUE);

Parameter

nIndex
[in] Gibt den Index des Bereichs an, dem Sie eine neue Textfarbe zuweisen möchten.

clrText
[in] Gibt die Textfarbe an.

bUpdate
[in] Wenn TRUE, aktualisieren Sie den Bereichsinhalt sofort. Aktualisieren Sie andernfalls den Bereichsinhalt erst, wenn der Bereich durch eine andere Methode ungültig ist.

CMFCStatusBar::SetPaneWidth

Legen Sie die Breite des Statusleistenbereichs fest.

void SetPaneWidth(
    int nIndex,
    int cx);

Parameter

nIndex
[in] Der Index des Statusleistenbereichs, für den eine neue Breite festgelegt werden soll.

cx
[in] Die neue Breite des Statusleistenbereichs in Pixel.

CMFCStatusBar::SetTipText

Legen Sie den QuickInfo-Text eines Statusleistenbereichs fest.

void SetTipText(
    int nIndex,
    LPCTSTR pszTipText);

Parameter

nIndex
[in] Der Index des Bereichs, dem Sie den QuickInfo-Text zuweisen möchten.

pszTipText
[in] Der neue QuickInfo-Text.

Siehe auch

Hierarchiediagramm
Klassen
CPane-Klasse
CStatusBar-Klasse