CMFCStatusBar – třída
Třída CMFCStatusBar
implementuje stavový řádek podobný CStatusBar
třídě. Třída CMFCStatusBar
ale nemá funkce, které CStatusBar
třída nenabízí, například schopnost zobrazovat obrázky, animace a indikátory průběhu a schopnost reagovat na poklikání myší.
Další podrobnosti najdete ve zdrojovém kódu ve složce VC\atlmfc\src\mfc instalace sady Visual Studio.
Syntaxe
class CMFCStatusBar : public CPane
Členové
Veřejné metody
Název | Popis |
---|---|
CMFCStatusBar::CalcFixedLayout | (Přepsání CBasePane::CalcFixedLayout.) |
CMFCStatusBar::CommandToIndex | |
CMFCStatusBar::Create | Vytvoří řídicí panel a připojí ho k objektu CPane . (Přepsání CPane::Create.) |
CMFCStatusBar::CreateEx | Vytvoří řídicí panel a připojí ho k objektu CPane . (Přepsání CPane::CreateEx.) |
CMFCStatusBar::D oesAllowDynInsertBefore | Určuje, zda lze mezi toto podokno a nadřazený rámec dynamicky vložit jiné podokno. (Přepsání CBasePane::D oesAllowDynInsertBefore.) |
CMFCStatusBar::EnablePaneDoubleClick | Povolí nebo zakáže zpracování myši poklikáním na stavovém řádku. |
CMFCStatusBar::EnablePaneProgressBar | Zobrazí indikátor průběhu v zadaném podokně. |
CMFCStatusBar::GetCount | Vrátí počet podoken na stavovém řádku. |
CMFCStatusBar::GetDrawExtendedArea | |
CMFCStatusBar::GetExtendedArea | |
CMFCStatusBar::GetItemID | |
CMFCStatusBar::GetItemRect | |
CMFCStatusBar::GetPaneInfo | |
CMFCStatusBar::GetPaneProgress | |
CMFCStatusBar::GetPaneStyle | Vrátí styl podokna. (Přepsání CBasePane::GetPaneStyle.) |
CMFCStatusBar::GetPaneText | |
CMFCStatusBar::GetPaneWidth | Vrátí šířku v pixelech zadaného podokna stavového řádku. |
CMFCStatusBar::GetTipText | Vrátí text popisu nástroje pro zadané podokno stavového řádku. |
CMFCStatusBar::InvalidatePaneContent | Zruší platnost zadaného podokna a překreslí jeho obsah. |
CMFCStatusBar::P reCreateWindow | Volá se rozhraním před vytvořením okna Windows připojeného k tomuto CWnd objektu. (Přepsání CWnd::P reCreateWindow.) |
CMFCStatusBar::SetDrawExtendedArea | |
CMFCStatusBar::SetIndicators | |
CMFCStatusBar::SetPaneAnimation | Přiřadí animaci k zadanému podoknu. |
CMFCStatusBar::SetPaneBackgroundColor | Nastaví barvu pozadí pro zadané podokno stavového řádku. |
CMFCStatusBar::SetPaneIcon | Nastaví ikonu indikátoru pro zadané podokno stavového řádku. |
CMFCStatusBar::SetPaneInfo | |
CMFCStatusBar::SetPaneProgress | Nastaví aktuální průběh indikátoru průběhu pro zadané podokno stavového řádku. |
CMFCStatusBar::SetPaneStyle | Nastaví styl podokna. (Přepsání CBasePane::SetPaneStyle.) |
CMFCStatusBar::SetPaneText | |
CMFCStatusBar::SetPaneTextColor | Nastaví barvu textu pro zadané podokno stavového řádku. |
CMFCStatusBar::SetPaneWidth | Nastaví šířku v pixelech zadaného podokna stavového řádku. |
CMFCStatusBar::SetTipText | Nastaví text popisu nástroje pro zadané podokno stavového řádku. |
Chráněné metody
Název | Popis |
---|---|
CMFCStatusBar::OnDrawPane | Volá se rozhraním při překreslení podokna stavového řádku. |
Poznámky
Následující diagram znázorňuje obrázek stavového řádku z ukázkové aplikace stavového řádku.
Příklady
Následující příklad ukazuje místní proměnné, které aplikace používá k volání různých metod ve CMFCStatusBar
třídě. Tyto proměnné jsou deklarovány v StatusBarDemoView.h. Hlavní rámec je deklarován v MainFrm.h, dokument je deklarován v StatusBarDemoDoc.h a zobrazení je deklarováno v StatusBarDemoView.h. Tento fragment kódu je součástí ukázky ukázky stavového řádku.
int m_nProgressCurr;
BOOL m_bInProgress;
CImageList m_imlStatusAnimation;
BOOL m_bInAnimation;
CBitmap m_bmpIcon1;
CBitmap m_bmpIcon2;
Následující příklad ukazuje, jak získat odkaz na CMFCStatusBar
objekt zavedením GetStatusBar
metody v MainFrm.h a následné volání této metody z GetStatusBar
metody v StatusBarDemoView.h. Tento fragment kódu je součástí ukázky ukázky stavového řádku.
// in MainFrm.h
public:
CMFCStatusBar &GetStatusBar()
{
return m_wndStatusBar;
}
// in StatusBarDemoView.h
CMFCStatusBar &GetStatusBar() const
{
return ((CMainFrame *)AfxGetMainWnd())->GetStatusBar();
}
Následující příklad ukazuje, jak volat různé metody ve CMFCStatusBar
třídě v StatusBarDemoView.cpp. Konstanty jsou deklarovány v MainFrm.h. Příklad ukazuje, jak nastavit ikonu, nastavit text popisu podokna stavového řádku, zobrazit indikátor průběhu v zadaném podokně, přiřadit animaci k zadanému podoknu, nastavit text a šířku podokna stavového řádku a nastavit aktuální indikátor průběhu indikátoru průběhu pro podokno stavového řádku. Tento fragment kódu je součástí ukázky ukázky stavového řádku.
// 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);
Hierarchie dědičnosti
Požadavky
Záhlaví: afxstatusbar.h
CMFCStatusBar::CalcFixedLayout
virtual CSize CalcFixedLayout(
BOOL bStretch,
BOOL bHorz);
Parametry
[v] bStretch
[v] bHorz
Návratová hodnota
Poznámky
CMFCStatusBar::CommandToIndex
int CommandToIndex(UINT nIDFind) const;
Parametry
[v] nIDFind
Návratová hodnota
Poznámky
CMFCStatusBar::Create
BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parametry
[v] pParentWnd
[v] dwStyle
[v] Nid
Návratová hodnota
Poznámky
CMFCStatusBar::CreateEx
BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parametry
[v] pParentWnd
[v] dwCtrlStyle
[v] dwStyle
[v] Nid
Návratová hodnota
Poznámky
CMFCStatusBar::D oesAllowDynInsertBefore
virtual BOOL DoesAllowDynInsertBefore() const;
Návratová hodnota
Poznámky
CMFCStatusBar::EnablePaneDoubleClick
Povolí nebo zakáže zpracování myši poklikáním na stavovém řádku.
void EnablePaneDoubleClick(BOOL bEnable=TRUE);
Parametry
bEnable
[v] Pokud je pravda, povolte zpracování myši poklikáním. Jinak zakažte zpracování myši poklikáním.
Poznámky
Pokud je stavový řádek povolený ke zpracování poklikání, systém Windows odešle oznámení WM_COMMAND společně s ID prostředku vlastníkovi stavového řádku pokaždé, když uživatel dvakrát klikne na podokno stavového řádku.
CMFCStatusBar::EnablePaneProgressBar
Zobrazí indikátor průběhu v zadaném podokně.
void EnablePaneProgressBar(
int nIndex,
long nTotal=100,
BOOL bDisplayText=FALSE,
COLORREF clrBar=-1,
COLORREF clrBarDest=-1,
COLORREF clrProgressText=-1);
Parametry
nIndex
[v] Určuje index podokna, jehož indikátor průběhu se má povolit.
nTotal
[v] Určuje maximální hodnotu indikátoru průběhu.
bDisplayText
[v] Určuje, jestli má indikátor průběhu zobrazovat aktuální hodnotu průběhu.
clrBar
[v] Určuje barvu pozadí indikátoru průběhu.
clrBarDest
[v] Určuje sekundární barvu pozadí indikátoru průběhu. Použijte jinou hodnotu než clrBar k vyplnění barvou prolnutím do přechodu.
clrProgressText
[v] Určuje barvu textu indikátoru průběhu.
Poznámky
Pokud chcete zakázat volání EnablePaneProgressBar
indikátoru průběhu s nTotal nastavenou na hodnotu -1. Ve výchozím nastavení je nTotal nastaveno na 100. Proto k zobrazení průběhu v procentech nepotřebujete žádné další výpočty.
Pro clrBar a clrBarDest byste měli předat různé hodnoty, aby barva pozadí indikátoru průběhu zobrazovala barvu prolnutí do přechodu. .
Chcete-li nastavit aktuální průběh, zavolejte CMFCStatusBar::SetPaneProgress metoda.
CMFCStatusBar::GetCount
Načte počet podoken na stavovém řádku.
int GetCount() const;
Návratová hodnota
Počet podoken na stavovém řádku
CMFCStatusBar::GetDrawExtendedArea
BOOL GetDrawExtendedArea() const;
Návratová hodnota
Poznámky
CMFCStatusBar::GetExtendedArea
virtual BOOL GetExtendedArea(CRect& rect) const;
Parametry
[v] Rect
Návratová hodnota
Poznámky
CMFCStatusBar::GetItemID
UINT GetItemID(int nIndex) const;
Parametry
[v] nIndex
Návratová hodnota
Poznámky
CMFCStatusBar::GetItemRect
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
Parametry
[v] nIndex
[v] lpRect
Poznámky
CMFCStatusBar::GetPaneInfo
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
Parametry
[v] nIndex
[v] Nid
[v] nStyle
[v] cxWidth
Poznámky
CMFCStatusBar::GetPaneProgress
long GetPaneProgress(int nIndex) const;
Parametry
[v] nIndex
Návratová hodnota
Poznámky
CMFCStatusBar::GetPaneStyle
UINT GetPaneStyle(int nIndex) const;
Parametry
[v] nIndex
Návratová hodnota
Poznámky
CMFCStatusBar::GetPaneText
void GetPaneText(
int nIndex,
CString& s) const;
CString GetPaneText(int nIndex) const;
Parametry
[v] nIndex
[v] s
Návratová hodnota
Poznámky
CMFCStatusBar::GetPaneWidth
Načte šířku podokna stavového řádku.
int GetPaneWidth(int nIndex) const;
Parametry
nIndex
[v] Určuje index podokna stavového řádku.
Návratová hodnota
Šířka podokna stavového řádku, které nIndex určuje, jinak nula, pokud podokno stavového řádku neexistuje.
CMFCStatusBar::GetTipText
Načtěte text popisu podokna stavového řádku.
CString GetTipText(int nIndex) const;
Parametry
nIndex
[v] Určuje index podokna, pro které se má načíst text popisu nástroje.
Návratová hodnota
Text popisu podokna stavového řádku, který nIndex určuje. V opačném případě prázdný řetězec, pokud pro zadaný nIndex neexistuje podokno stavového řádku nebo pokud je jeho text popisu prázdný.
CMFCStatusBar::InvalidatePaneContent
Zneplatnit podokno stavového řádku a překreslit jeho obsah.
void InvalidatePaneContent(int nIndex);
Parametry
nIndex
[v] Určuje index podokna, jehož obsah se má zneplatnit a překreslit.
Poznámky
Pokud je stavový řádek neplatný, je označen pro překreslení. Systém Windows ji překreslí, když UpdateWindow
metoda odešle WM_PAINT zprávu do OnPaint
metody.
CMFCStatusBar::OnDrawPane
Překreslit podokno stavového řádku.
virtual void OnDrawPane(
CDC* pDC,
CMFCStatusBarPaneInfo* pPane);
Parametry
pDC
[v] Ukazatel na kontext zařízení pro kreslení.
pPane
[v] Ukazatel na CMFCStatusBarPaneInfo
strukturu, která obsahuje informace o podokně, které se mají překreslit.
Poznámky
Ve výchozím nastavení OnDrawPane
překreslí podokno pomocí kontextu zařízení pDC podle stylu a obsahu podokna.
Přepsat tuto metodu v -odvozené CMFCStatusBar
třídě přizpůsobit vzhled podokna.
CMFCStatusBar::P reCreateWindow
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
Parametry
[v] Cs
Návratová hodnota
Poznámky
CMFCStatusBar::SetDrawExtendedArea
void SetDrawExtendedArea(BOOL bSet = TRUE);
Parametry
[v] bSet
Poznámky
CMFCStatusBar::SetIndicators
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
Parametry
[v] lpIDArray
[v] nIDCount
Návratová hodnota
Poznámky
CMFCStatusBar::SetPaneAnimation
Přiřadí animaci k zadanému podoknu.
void SetPaneAnimation(
int nIndex,
HIMAGELIST hImageList,
UINT nFrameRate=500,
BOOL bUpdate=TRUE);
Parametry
nIndex
[v] Určuje index podokna, ke kterému chcete přiřadit animaci.
hImageList
[v] Určuje popisovač seznamu obrázků, který obsahuje snímky animace.
nFrameRate
[v] Určuje frekvenci snímků v milisekundách animace.
bUpdate
[v] Pokud ano, aktualizujte obsah podokna okamžitě. V opačném případě se obsah podokna aktualizuje, když je neplatný.
Poznámky
Pokud chcete aktuální animaci zakázat, zavolejte SetPaneAnimation
s nastavenou hImageList
hodnotou NULL.
CMFCStatusBar::SetPaneBackgroundColor
Nastaví barvu pozadí podokna stavového řádku.
void SetPaneBackgroundColor(
int nIndex,
COLORREF clrBackground=(COLORREF)-1,
BOOL bUpdate=TRUE);
Parametry
nIndex
[v] Určuje index podokna, pro které chcete nastavit novou barvu pozadí.
clrBackground
[v] Určuje novou barvu pozadí.
bUpdate
[v] Pokud ano, aktualizujte obsah podokna okamžitě. Jinak neaktualizovat obsah podokna, dokud podokno nebude zneplatněn jinou metodou.
CMFCStatusBar::SetPaneIcon
Nastavte ikonu podokna stavového řádku.
void SetPaneIcon(
int nIndex,
HICON hIcon,
BOOL bUpdate=TRUE);
void SetPaneIcon(
int nIndex,
HBITMAP hBmp,
COLORREF clrTransparent=RGB(255, 0, 255),
BOOL bUpdate=TRUE);
Parametry
nIndex
[v] Určuje index podokna, pro které se má obrázek nastavit.
hIcon
[v] Určuje popisovač ikony, která se má nastavit jako obrázek podokna.
bUpdate
[v] Určuje, jestli se má obsah podokna aktualizovat okamžitě.
hBmp
[v] Určuje úchyt rastrového obrázku, který se má nastavit jako obrázek podokna.
clrTransparent
[v] Určuje průhlednou barvu rastrového obrázku, kterou hBmp označuje.
Poznámky
Můžete předat HICON nebo HBITMAP společně s průhlednou barvou a nastavit tak obrázek podokna. Pokud už nechcete obrázek zobrazit, předejte hodnotu NULL jako popisovač obrázku.
Pokud je spuštěná animace, kterou má CMFCStatusBar::SetPaneAnimation nastavenou, animace se zastaví.
CMFCStatusBar::SetPaneInfo
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
Parametry
[v] nIndex
[v] Nid
[v] nStyle
[v] cxWidth
Poznámky
CMFCStatusBar::SetPaneProgress
Nastavte aktuální indikátor průběhu indikátoru průběhu pro zadané podokno.
void SetPaneProgress(
int nIndex,
long nCurr,
BOOL bUpdate=TRUE);
Parametry
nIndex
[v] Určuje index podokna, pro které se má indikátor průběhu aktualizovat.
nCurr
[v] Určuje aktuální hodnotu indikátoru průběhu.
bUpdate
[v] Určuje, jestli se má podokno aktualizovat okamžitě.
Poznámky
Tuto metodu zavolejte, pokud chcete aktualizovat indikátor průběhu indikátoru průběhu v zadaném podokně.
Chcete-li použít tuto funkci pro dané podokno, musíte nejprve volat CMFCStatusBar::EnablePaneProgressBar .
CMFCStatusBar::SetPaneStyle
void SetPaneStyle(
int nIndex,
UINT nStyle);
Parametry
[v] nIndex
[v] nStyle
Poznámky
CMFCStatusBar::SetPaneText
virtual BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
Parametry
[v] nIndex
[v] lpszNewText
[v] bUpdate
Návratová hodnota
Poznámky
CMFCStatusBar::SetPaneTextColor
Nastaví barvu textu zadaného podokna.
void SetPaneTextColor(
int nIndex,
COLORREF clrText=(COLORREF)-1,
BOOL bUpdate=TRUE);
Parametry
nIndex
[v] Určuje index podokna, ke kterému chcete přiřadit novou barvu textu.
clrText
[v] Určuje barvu textu.
bUpdate
[v] Pokud ano, aktualizujte obsah podokna okamžitě. Jinak neaktualizovat obsah podokna, dokud podokno nebude zneplatněn jinou metodou.
CMFCStatusBar::SetPaneWidth
Nastavte šířku podokna stavového řádku.
void SetPaneWidth(
int nIndex,
int cx);
Parametry
nIndex
[v] Index podokna stavového řádku, pro které chcete nastavit novou šířku.
cx
[v] Nová šířka podokna stavového řádku v pixelech.
CMFCStatusBar::SetTipText
Nastavte text popisu podokna stavového řádku.
void SetTipText(
int nIndex,
LPCTSTR pszTipText);
Parametry
nIndex
[v] Index podokna, ke kterému chcete přiřadit text popisu.
pszTipText
[v] Nový text popisu