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.
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
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 CMFCStatusBar
abgeleiteten 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.