CStatusBarCtrl – třída
Poskytuje funkce běžného ovládacího prvku stavového řádku systému Windows.
Syntaxe
class CStatusBarCtrl : public CWnd
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CStatusBarCtrl::CStatusBarCtrl | CStatusBarCtrl Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CStatusBarCtrl::Create | Vytvoří ovládací prvek stavového řádku a připojí ho k objektu CStatusBarCtrl . |
CStatusBarCtrl::CreateEx | Vytvoří ovládací prvek stavového řádku se zadanými rozšířenými styly Windows a připojí ho k objektu CStatusBarCtrl . |
CStatusBarCtrl::D rawItem | Volá se, když se změní vizuální aspekt ovládacího prvku stavového řádku pro kreslení vlastníka. |
CStatusBarCtrl::GetBorders | Načte aktuální šířky vodorovného a svislého ohraničení ovládacího prvku stavového řádku. |
CStatusBarCtrl::GetIcon | Načte ikonu pro část (označovanou také jako podokno) v aktuálním ovládacím prvku stavového řádku. |
CStatusBarCtrl::GetParts | Načte počet částí v ovládacím prvku stavového řádku. |
CStatusBarCtrl::GetRect | Načte ohraničující obdélník části v ovládacím prvku stavového řádku. |
CStatusBarCtrl::GetText | Načte text z dané části ovládacího prvku stavového řádku. |
CStatusBarCtrl::GetTextLength | Načtěte délku textu v znaky z dané části ovládacího prvku stavového řádku. |
CStatusBarCtrl::GetTipText | Načte text popisu podokna na stavovém řádku. |
CStatusBarCtrl::IsSimple | Zkontroluje ovládací prvek stavového okna a určí, jestli je v jednoduchém režimu. |
CStatusBarCtrl::SetBkColor | Nastaví barvu pozadí na stavovém řádku. |
CStatusBarCtrl::SetIcon | Nastaví ikonu podokna na stavovém řádku. |
CStatusBarCtrl::SetMinHeight | Nastaví minimální výšku oblasti výkresu ovládacího prvku stavového řádku. |
CStatusBarCtrl::SetParts | Nastaví počet částí v ovládacím prvku stavového řádku a souřadnici pravého okraje každé části. |
CStatusBarCtrl::SetSimple | Určuje, zda ovládací prvek stavového řádku zobrazí jednoduchý text nebo zobrazí všechny části ovládacích prvků nastavené předchozím voláním SetParts . |
CStatusBarCtrl::SetText | Nastaví text v dané části ovládacího prvku stavového řádku. |
CStatusBarCtrl::SetTipText | Nastaví text popisu podokna na stavovém řádku. |
Poznámky
Ovládací prvek stavového řádku je vodorovné okno, obvykle zobrazené v dolní části nadřazeného okna, ve kterém může aplikace zobrazit různé druhy informací o stavu. Ovládací prvek stavového řádku lze rozdělit na části, které zobrazí více typů informací.
Tento ovládací prvek (a proto CStatusBarCtrl
třída) je k dispozici pouze pro programy spuštěné v systémech Windows 95/98 a systém Windows NT verze 3.51 a novější.
Další informace o použití CStatusBarCtrl
naleznete v tématu Ovládací prvky a použití CStatusBarCtrl.
Hierarchie dědičnosti
CStatusBarCtrl
Požadavky
Hlavička: afxcmn.h
CStatusBarCtrl::Create
Vytvoří ovládací prvek stavového řádku a připojí ho k objektu CStatusBarCtrl
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Určuje styl ovládacího prvku stavového řádku. Použijte libovolnou kombinaci stylů ovládacích prvků stavového řádku uvedených v běžných stylech ovládacích prvků v sadě Windows SDK. Tento parametr musí obsahovat styl WS_CHILD. Měl by obsahovat také styl WS_VISIBLE.
Rect
Určuje velikost a umístění ovládacího prvku stavového řádku. Může to být objekt CRect nebo struktura RECT .
pParentWnd
Určuje nadřazené okno ovládacího prvku stavového řádku, obvykle CDialog
Nesmí mít hodnotu NULL.
Nid
Určuje ID ovládacího prvku stavového řádku.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak nula.
Poznámky
Sestavíte ho CStatusBarCtrl
ve dvou krocích. Nejprve zavolejte konstruktor a potom volání Create
, který vytvoří ovládací prvek stavového řádku a připojí ho k objektu CStatusBarCtrl
.
Výchozí pozice stavového okna je v dolní části nadřazeného okna, ale můžete určit styl CCS_TOP, který se má zobrazit v horní části klientské oblasti nadřazeného okna. Můžete určit styl SBARS_SIZEGRIP tak, aby na pravém konci stavového okna obsahoval úchyt pro změnu velikosti. Kombinace CCS_TOP a SBARS_SIZEGRIP stylů se nedoporučuje, protože výsledný úchyt pro změnu velikosti není funkční, i když ho systém nakreslí do stavového okna.
Chcete-li vytvořit stavový řádek s rozšířenými styly oken, zavolejte CStatusBarCtrl::CreateEx místo Create
.
Příklad
VERIFY(m_wndSBC.Create(WS_CHILD | WS_VISIBLE | CCS_BOTTOM | SBARS_SIZEGRIP,
CRect(0, 0, 0, 0), this, IDC_STATUSBARCTRL));
CStatusBarCtrl::CreateEx
Vytvoří ovládací prvek (podřízené okno) a přidruží ho k objektu CStatusBarCtrl
.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwExStyle
Určuje rozšířený styl vytvářeného ovládacího prvku. Seznam rozšířených stylů Windows naleznete v části dwExStyle parametr pro CreateWindowEx v sadě Windows SDK.
dwStyle
Určuje styl ovládacího prvku stavového řádku. Použijte libovolnou kombinaci stylů ovládacích prvků stavového řádku uvedených v běžných stylech ovládacích prvků v sadě Windows SDK. Tento parametr musí obsahovat styl WS_CHILD. Měl by obsahovat také styl WS_VISIBLE.
Rect
Odkaz na strukturu RECT popisující velikost a umístění okna, které se má vytvořit, v souřadnicích klienta pParentWnd.
pParentWnd
Ukazatel na okno, které je nadřazeným objektem ovládacího prvku.
Nid
ID podřízeného okna ovládacího prvku.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Místo příkazu Vytvořit použijte CreateEx
rozšířené styly Windows určené před WS_EX_ rozšířeného stylu Windows.
CStatusBarCtrl::CStatusBarCtrl
CStatusBarCtrl
Vytvoří objekt.
CStatusBarCtrl();
CStatusBarCtrl::D rawItem
Volá se podle architektury, když se změní vizuální aspekt ovládacího prvku stavového řádku pro kreslení vlastníka.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametry
lpDrawItem – struktura
Dlouhý ukazatel na strukturu DRAWITEMSTRUCT , která obsahuje informace o typu požadovaného výkresu.
Poznámky
Člen itemAction
DRAWITEMSTRUCT
struktury definuje akci výkresu, která se má provést.
Ve výchozím nastavení tato členová funkce nic nedělá. Přepište tuto členovou funkci tak, aby implementovaly výkres pro objekt pro kreslení CStatusBarCtrl
vlastníka.
Aplikace by měla obnovit všechny objekty rozhraní grafického zařízení (GDI) vybrané pro kontext zobrazení zadaný v lpDrawItemStruct před ukončením této členské funkce.
CStatusBarCtrl::GetBorders
Načte aktuální šířky ovládacího prvku stavového řádku vodorovného a svislého ohraničení a mezery mezi obdélníky.
BOOL GetBorders(int* pBorders) const;
BOOL GetBorders(
int& nHorz,
int& nVert,
int& nSpacing) const;
Parametry
Pořadí pB
Adresa celočíselného pole se třemi prvky První prvek obdrží šířku vodorovného ohraničení, druhý přijme šířku svislého ohraničení a třetí přijme šířku ohraničení mezi obdélníky.
nHorz
Odkaz na celé číslo, které přijímá šířku vodorovného ohraničení.
nVert
Odkaz na celé číslo, které přijímá šířku svislého ohraničení.
NSpacing
Odkaz na celé číslo, které přijímá šířku ohraničení mezi obdélníky.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak nula.
Poznámky
Tato ohraničení určují mezery mezi vnějším okrajem ovládacího prvku a obdélníky v ovládacím prvku, který obsahuje text.
Příklad
RECT rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));
int borderArray[3];
VERIFY(m_wndSBC.GetBorders(borderArray));
int nHorz, nVert, nSpacing;
VERIFY(m_wndSBC.GetBorders(nHorz, nVert, nSpacing));
CStatusBarCtrl::GetIcon
Načte ikonu pro část (označovanou také jako podokno) v aktuálním ovládacím prvku stavového řádku.
HICON GetIcon(int iPart) const;
Parametry
iPart
[v] Index založený na nule části, která obsahuje ikonu, která se má načíst. Pokud je tento parametr -1, stavový řádek se předpokládá jako jednoduchý stavový řádek režimu.
Návratová hodnota
Popisovač ikony, pokud metoda proběhla úspěšně; v opačném případě null.
Poznámky
Tato metoda odešle SB_GETICON zprávu, která je popsaná v sadě Windows SDK.
Ovládací prvek stavového řádku se skládá z řádku podokna výstupu textu, které se také označují jako části. Další informace o stavovém řádku naleznete v tématu Implementace stavového řádku v prostředí MFC a Nastavení režimu objektu CStatusBarCtrl.
Příklad
První příklad kódu definuje proměnnou, m_statusBar
která se používá pro přístup k aktuálnímu ovládacímu prvku stavového řádku. Tato proměnná se používá v dalším příkladu.
public:
CStatusBarCtrl m_statusBar;
Následující příklad kódu zkopíruje ikonu do dvou podoken aktuálního ovládacího prvku stavového řádku. V předchozí části příkladu kódu jsme vytvořili ovládací prvek stavového řádku se třemi podokny a pak jsme do prvního podokna přidali ikonu. Tento příklad načte ikonu z prvního podokna a pak ji přidá do druhého a třetího podokna.
// Get the icon from pane 1 and set it in panes 2 and 3.
HICON hIcon = m_statusBar.GetIcon(0);
m_statusBar.SetIcon(1, hIcon);
m_statusBar.SetIcon(2, hIcon);
CStatusBarCtrl::GetParts
Načte počet částí v ovládacím prvku stavového řádku.
int GetParts(
int nParts,
int* pParts) const;
Parametry
nParts
Počet částí, pro které se mají načíst souřadnice Pokud je tento parametr větší než počet částí v ovládacím prvku, zpráva načte souřadnice pouze pro existující části.
pParts
Adresa celočíselného pole se stejným počtem prvků jako počet částí určených nParts. Každý prvek v poli obdrží souřadnici klienta pravého okraje odpovídající části. Pokud je prvek nastaven na - 1, pozice pravého okraje pro danou část se rozšíří na pravý okraj stavového řádku.
Návratová hodnota
Počet částí v ovládacím prvku, pokud je úspěšný, nebo nula jinak.
Poznámky
Tato členová funkce také načte souřadnici pravého okraje daného počtu částí.
Příklad
int pParts[2];
int nParts = m_wndSBC.GetParts(2, pParts);
CStatusBarCtrl::GetRect
Načte ohraničující obdélník části v ovládacím prvku stavového řádku.
BOOL GetRect(
int nPane,
LPRECT lpRect) const;
Parametry
nPane
Index založený na nule části, jejíž ohraničující obdélník se má načíst.
lpRect
Adresa struktury RECT, která přijímá ohraničující obdélník.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak nula.
Příklad
CRect rectPane1;
VERIFY(m_wndSBC.GetRect(1, &rectPane1));
CStatusBarCtrl::GetText
Načte text z dané části ovládacího prvku stavového řádku.
CString GetText(
int nPane,
int* pType = NULL) const;
int GetText(
LPCTSTR lpszText,
int nPane,
int* pType = NULL) const;
Parametry
lpszText
Adresa vyrovnávací paměti, která přijímá text. Tento parametr je řetězec ukončený hodnotou null.
nPane
Index založený na nule části, ze které se má načíst text.
pType
Ukazatel na celé číslo, které přijímá informace o typu. Typ může být jedna z těchto hodnot:
0 Text je nakreslen ohraničení, který se zobrazí nižší než rovina stavového řádku.
SBT_NOBORDERS Text je nakreslený bez ohraničení.
SBT_POPOUT Text se nakreslí ohraničením, které se zobrazí výš než rovina stavového řádku.
SBT_OWNERDRAW Pokud text obsahuje typ výkresu SBT_OWNERDRAW, pType obdrží tuto zprávu a vrátí 32bitovou hodnotu přidruženou k textu místo délky a typu operace.
Návratová hodnota
Délka textu nebo řetězce CString obsahující aktuální text.
Příklad
int nType;
TCHAR *pszPaneOneText;
pszPaneOneText = new TCHAR[m_wndSBC.GetTextLength(1, &nType) + 1];
int nTextLength = m_wndSBC.GetText(pszPaneOneText, 1, &nType);
switch (nType)
{
case 0:
// Text is drawn with a border to appear lower than the
// plane of the status bar
break;
case SBT_NOBORDERS:
// text is drawn without borders
break;
case SBT_OWNERDRAW:
// Text is drawn by the parent window
break;
case SBT_POPOUT:
// Text is drawn with a border to appear higher than the
// plane of the status bar
break;
}
delete pszPaneOneText;
CStatusBarCtrl::GetTextLength
Načte délku textu v znacích z dané části ovládacího prvku stavového řádku.
int GetTextLength(
int nPane,
int* pType = NULL) const;
Parametry
nPane
Index založený na nule části, ze které se má načíst text.
pType
Ukazatel na celé číslo, které přijímá informace o typu. Typ může být jedna z těchto hodnot:
0 Text je nakreslen ohraničení, který se zobrazí nižší než rovina stavového řádku.
SBT_NOBORDERS Text je nakreslený bez ohraničení.
SBT_OWNERDRAW Text je vykreslen nadřazeným oknem.
SBT_POPOUT Text se nakreslí ohraničením, které se zobrazí výš než rovina stavového řádku.
Návratová hodnota
Délka textu ve znaméně.
Příklad
int nType;
int nLength = m_wndSBC.GetTextLength(0, &nType);
switch (nType)
{
case 0:
// Text is drawn with a border to appear lower than the
// plane of the status bar
break;
case SBT_NOBORDERS:
// text is drawn without borders
break;
case SBT_OWNERDRAW:
// Text is drawn by the parent window
break;
case SBT_POPOUT:
// Text is drawn with a border to appear higher than the
// plane of the status bar
break;
}
CStatusBarCtrl::GetTipText
Načte text popisu podokna na stavovém řádku.
CString GetTipText(int nPane) const;
Parametry
nPane
Nulový index podokna stavového řádku pro příjem textu popisu.
Návratová hodnota
CString objekt obsahující text, který se má použít v popisu.
Poznámky
Tato členová funkce implementuje chování zprávy Win32 SB_GETTIPTEXT, jak je popsáno v sadě Windows SDK.
Příklad
CString csPane0TipText = m_wndSBC.GetTipText(0);
CStatusBarCtrl::IsSimple
Zkontroluje ovládací prvek stavového okna a určí, jestli je v jednoduchém režimu.
BOOL IsSimple() const;
Návratová hodnota
Nenulové, pokud je ovládací prvek stavového okna v jednoduchém režimu; jinak nula.
Poznámky
Tato členová funkce implementuje chování zprávy Win32 SB_ISSIMPLE, jak je popsáno v sadě Windows SDK.
CStatusBarCtrl::SetBkColor
Nastaví barvu pozadí na stavovém řádku.
COLORREF SetBkColor(COLORREF cr);
Parametry
Čr
Hodnota COLORREF, která určuje novou barvu pozadí. Zadejte hodnotu CLR_DEFAULT, která způsobí, že stavový řádek použije výchozí barvu pozadí.
Návratová hodnota
Hodnota COLORREF, která představuje předchozí výchozí barvu pozadí.
Poznámky
Tato členová funkce implementuje chování zprávy Win32 SB_SETBKCOLOR, jak je popsáno v sadě Windows SDK.
Příklad
m_wndSBC.SetBkColor(RGB(0, 0, 250));
HICON hIcon = AfxGetApp()->LoadIcon(IDI_PANE_0_ICON);
VERIFY(hIcon);
VERIFY(m_wndSBC.SetIcon(0, hIcon));
CStatusBarCtrl::SetIcon
Nastaví ikonu podokna na stavovém řádku.
BOOL SetIcon(
int nPane,
HICON hIcon);
Parametry
nPane
Index podokna založený na nule, který ikonu obdrží. Pokud je tento parametr -1, stavový řádek se předpokládá jako jednoduchý stavový řádek.
hIcon
Popisovač ikony, která se má nastavit Pokud je tato hodnota NULL, ikona se z části odebere.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak nula.
Poznámky
Tato členová funkce implementuje chování zprávy Win32 SB_SETICON, jak je popsáno v sadě Windows SDK.
Příklad
Podívejte se na příklad pro CStatusBarCtrl::SetBkColor.
CStatusBarCtrl::SetMinHeight
Nastaví minimální výšku oblasti výkresu ovládacího prvku stavového řádku.
void SetMinHeight(int nMin);
Parametry
nMin
Minimální výška ovládacího prvku v pixelech.
Poznámky
Minimální výška je součet nMin a dvakrát šířky v pixelech svislého okraje ovládacího prvku stavového řádku.
Příklad
m_wndSBC.SetMinHeight(40);
CStatusBarCtrl::SetParts
Nastaví počet částí v ovládacím prvku stavového řádku a souřadnici pravého okraje každé části.
BOOL SetParts(
int nParts,
int* pWidths);
Parametry
nParts
Počet částí, které se mají nastavit Počet dílů nesmí být větší než 255.
pWidths
Adresa celočíselného pole se stejným počtem prvků jako části určené nParts. Každý prvek v poli určuje pozici v souřadnicích klienta pravého okraje odpovídající části. Pokud je prvek - 1, pozice pravého okraje pro tuto část se rozšíří na pravý okraj ovládacího prvku.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak nula.
Příklad
const int c_nParts = 4;
CRect rect;
m_wndSBC.GetClientRect(&rect);
int aWidths[c_nParts] = {rect.right - 300, rect.right - 200, rect.right - 100,
-1};
VERIFY(m_wndSBC.SetParts(c_nParts, aWidths));
CStatusBarCtrl::SetSimple
Určuje, zda ovládací prvek stavového řádku zobrazí jednoduchý text nebo zobrazí všechny části ovládacího prvku nastavené předchozím voláním SetParts.
BOOL SetSimple(BOOL bSimple = TRUE);
Parametry
bSimple
[v] Příznak typu zobrazení Pokud je tento parametr TRUE, ovládací prvek zobrazí jednoduchý text; pokud je FALSE, zobrazí více částí.
Návratová hodnota
Vždy vrátí hodnotu 0.
Poznámky
Pokud aplikace změní ovládací prvek stavového řádku z jednoduchého na jednoduchý nebo naopak, systém okamžitě překreslí ovládací prvek.
CStatusBarCtrl::SetText
Nastaví text v dané části ovládacího prvku stavového řádku.
BOOL SetText(
LPCTSTR lpszText,
int nPane,
int nType);
Parametry
lpszText
Adresa řetězce ukončeného hodnotou null určující text, který se má nastavit. Pokud je nType SBT_OWNERDRAW, lpszText představuje 32 bitů dat.
nPane
Nulový index části, která se má nastavit. Pokud je tato hodnota 255, předpokládá se, že ovládací prvek stavového řádku je jednoduchý ovládací prvek, který má pouze jednu část.
nType
Typ operace kreslení. Seznam možných hodnot najdete v SB_SETTEXT zprávě .
Návratová hodnota
Nenulové, pokud je úspěšné; jinak nula.
Poznámky
Zpráva zneplatní část ovládacího prvku, který se změnil, což způsobí, že se nový text zobrazí při dalším přijetí WM_PAINT zprávy.
Příklad
VERIFY(m_wndSBC.SetText(_T("Text For Pane 1"), 1, 0));
CStatusBarCtrl::SetTipText
Nastaví text popisu podokna na stavovém řádku.
void SetTipText(
int nPane,
LPCTSTR pszTipText);
Parametry
nPane
Nulový index podokna stavového řádku pro příjem textu popisu.
pszTipText
Ukazatel na řetězec obsahující text popisu
Poznámky
Tato členová funkce implementuje chování zprávy Win32 SB_SETTIPTEXT, jak je popsáno v sadě Windows SDK.
Příklad
m_wndSBC.SetTipText(0, _T("This is Pane 0"));