Sdílet prostřednictvím


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í CStatusBarCtrlnaleznete v tématu Ovládací prvky a použití CStatusBarCtrl.

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

CWnd

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_statusBarkterá 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"));

Viz také

CWnd – třída
Graf hierarchie
CToolBarCtrl – třída