CStatusBar – třída
Řídicí panel s řádkem textových výstupních podoken nebo indikátory
Syntaxe
class CStatusBar : public CControlBar
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CStatusBar::CStatusBar | CStatusBar Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CStatusBar::CommandToIndex | Získá index pro dané ID ukazatele. |
CStatusBar::Create | Vytvoří stavový řádek, připojí ho k objektu CStatusBar a nastaví počáteční písmo a výšku pruhu. |
CStatusBar::CreateEx | CStatusBar Vytvoří objekt s dalšími styly pro vložený CStatusBarCtrl objekt. |
CStatusBar::D rawItem | Volá se, když se změní vizuální aspekt ovládacího prvku stavového řádku pro kreslení vlastníka. |
CStatusBar::GetItemID | Získá ID ukazatele pro daný index. |
CStatusBar::GetItemRect | Získá obdélník zobrazení pro daný index. |
CStatusBar::GetPaneInfo | Získá ID ukazatele, styl a šířku pro daný index. |
CStatusBar::GetPaneStyle | Získá styl ukazatele pro daný index. |
CStatusBar::GetPaneText | Získá text indikátoru pro daný index. |
CStatusBar::GetStatusBarCtrl | Umožňuje přímý přístup k základnímu společnému řízení. |
CStatusBar::SetIndicators | Nastaví ID indikátorů. |
CStatusBar::SetPaneInfo | Nastaví ID, styl a šířku indikátoru pro daný index. |
CStatusBar::SetPaneStyle | Nastaví styl ukazatele pro daný index. |
CStatusBar::SetPaneText | Nastaví text indikátoru pro daný index. |
Poznámky
Výstupní podokna se běžně používají jako řádky zpráv a jako indikátory stavu. Mezi příklady patří řádky nápovědy k nabídce, které stručně vysvětlují vybraný příkaz nabídky a indikátory, které zobrazují stav SCROLL LOCK, NUM LOCK a dalších kláves.
CStatusBar::GetStatusBarCtrl, členská funkce nová v prostředí MFC 4.0, umožňuje využívat podporu společného ovládacího prvku Windows pro přizpůsobení stavového řádku a další funkce. CStatusBar
členské funkce poskytují většinu funkcí běžných ovládacích prvků Windows; nicméně, když zavoláte GetStatusBarCtrl
, můžete stavové řádky ještě více charakteristiky Windows 95/98 stavový řádek. Při volání GetStatusBarCtrl
vrátí odkaz na CStatusBarCtrl
objekt. Další informace o návrhu panelů nástrojů pomocí běžných ovládacích prvků Windows najdete v tématu CStatusBarCtrl . Další obecné informace o běžných ovládacích prvcích naleznete v tématu Běžné ovládací prvky v sadě Windows SDK.
Architektura ukládá informace o indikátorech v poli s ukazatelem úplně vlevo na pozici 0. Při vytváření stavového řádku použijete pole IDENTIFIKÁTORů řetězců, které architektura přidruží k odpovídajícím indikátorům. K přístupu k indikátoru pak můžete použít BUĎ ID řetězce, nebo index.
Ve výchozím nastavení je první indikátor elastický: zabírá délku stavového řádku, kterou ostatní podokna indikátoru nepoužívají, aby ostatní podokna byla zarovnaná doprava.
Pokud chcete vytvořit stavový řádek, postupujte takto:
CStatusBar
Vytvořte objekt.Voláním funkce Create (nebo CreateEx) vytvořte okno stavového řádku a připojte ho k objektu
CStatusBar
.Volání SetIndicators pro přidružení ID řetězce ke každému indikátoru.
Text v podokně stavového řádku můžete aktualizovat třemi způsoby:
Volání CWnd::SetWindowText k aktualizaci textu pouze v podokně 0.
Volání CCmdUI::SetText na stavovém řádku ON_UPDATE_COMMAND_UI obslužné rutiny.
Volání SetPaneText pro aktualizaci textu pro libovolné podokno.
Volání SetPaneStyle pro aktualizaci stylu stavového řádku podokna.
Další informace o použití CStatusBar
naleznete v článku Implementace stavového řádku v PROSTŘEDÍ MFC a Technické poznámka 31: Řídicí panely.
Hierarchie dědičnosti
CStatusBar
Požadavky
Hlavička: afxext.h
CStatusBar::CommandToIndex
Získá index indikátoru pro dané ID.
int CommandToIndex(UINT nIDFind) const;
Parametry
nIDFind
ID řetězce indikátoru, jehož index se má načíst.
Návratová hodnota
Index ukazatele v případě úspěchu; -1, pokud není úspěšný.
Poznámky
Index prvního indikátoru je 0.
CStatusBar::Create
Vytvoří stavový řádek (podřízené okno) a přidruží ho k objektu CStatusBar
.
virtual BOOL Create(
CWnd* pParentWnd,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parametry
pParentWnd
Ukazatel na objekt CWnd , jehož okno Windows je nadřazeným objektem stavového řádku.
dwStyle
Styl stavového řádku. Kromě standardních stylů Windows jsou tyto styly podporované.
CBRS_TOP Ovládací panel je v horní části okna rámečku.
CBRS_BOTTOM Ovládací panel je v dolní části okna rámečku.
CBRS_NOALIGN Ovládací panel se při změně velikosti nadřazeného objektu nepřeloží.
Nid
ID podřízeného okna panelu nástrojů
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Nastaví také počáteční písmo a nastaví výšku stavového řádku na výchozí hodnotu.
CStatusBar::CreateEx
Voláním této funkce vytvoříte stavový řádek (podřízené okno) a přidružíte ji k objektu CStatusBar
.
virtual BOOL CreateEx(
CWnd* pParentWnd,
DWORD dwCtrlStyle = 0,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM,
UINT nID = AFX_IDW_STATUS_BAR);
Parametry
pParentWnd
Ukazatel na objekt CWnd , jehož okno Windows je nadřazeným objektem stavového řádku.
dwCtrlStyle
Další styly pro vytvoření vloženého CStatusBarCtrl objektu. Výchozí hodnota určuje stavový řádek bez podpory úchytu nebo popisu velikosti. Podporované jsou styly stavového řádku:
SBARS_SIZEGRIP Ovládací prvek stavového řádku obsahuje úchyt pro změnu velikosti na pravém konci stavového řádku. Úchyt pro změnu velikosti je podobný ohraničení velikosti; jedná se o obdélníkovou oblast, na kterou uživatel může kliknout a přetáhnout a změnit velikost nadřazeného okna.
SBT_TOOLTIPS Stavový řádek podporuje popisy.
Podrobnosti o těchto stylech najdete v tématu Nastavení pro CStatusBarCtrl.
dwStyle
Styl stavového řádku. Výchozí hodnota určuje, že se v dolní části okna rámečku vytvoří viditelný stavový řádek. Použijte libovolnou kombinaci stylů ovládacích prvků stavového řádku uvedených v okně Styly a CDialogBar::Create. Tento parametr by však měl vždy obsahovat styly WS_CHILD a WS_VISIBLE.
Nid
ID podřízeného okna stavového řádku.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Tato funkce také nastaví počáteční písmo a nastaví výšku stavového řádku na výchozí hodnotu.
Místo příkazu Vytvořit použijteCreateEx
, když se při vytváření ovládacího prvku stavového řádku musí vyskytovat určité styly. Například nastavte dwCtrlStyle na SBT_TOOLTIPS zobrazení popisů v objektu stavového řádku.
CStatusBar::CStatusBar
CStatusBar
Vytvoří objekt, v případě potřeby vytvoří výchozí písmo stavového řádku a nastaví vlastnosti písma na výchozí hodnoty.
CStatusBar();
CStatusBar::D rawItem
Tato členová funkce je volána architekturou, když se změní vizuální aspekt stavového řádku nakresleného vlastníkem.
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
Parametry
lpDrawItem – struktura
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. Přepište tuto členovou funkci tak, aby implementovaly výkres pro objekt pro kreslení CStatusBar
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.
CStatusBar::GetItemID
Vrátí ID ukazatele určeného parametrem nIndex.
UINT GetItemID(int nIndex) const;
Parametry
nIndex
Index ukazatele, jehož ID se má načíst
Návratová hodnota
ID ukazatele určeného parametrem nIndex.
CStatusBar::GetItemRect
Zkopíruje souřadnice ukazatele určeného parametrem nIndex do struktury, na kterou odkazuje lpRect.
void GetItemRect(
int nIndex,
LPRECT lpRect) const;
Parametry
nIndex
Index ukazatele, jehož obdélníkové souřadnice se mají načíst.
lpRect
Odkazuje na strukturu RECT nebo CRect objekt, který obdrží souřadnice indikátoru určeného nIndex.
Poznámky
Souřadnice jsou v pixelech vzhledem k levému hornímu rohu stavového řádku.
CStatusBar::GetPaneInfo
Nastaví nID, nStyle a cxWidth na ID, styl a šířku podokna indikátoru v umístění určeném parametrem nIndex.
void GetPaneInfo(
int nIndex,
UINT& nID,
UINT& nStyle,
int& cxWidth) const;
Parametry
nIndex
Index podokna, jehož informace se mají načíst
Nid
Odkaz na UINT, který je nastavený na ID podokna.
nStyle
Odkaz na UINT, který je nastavený na styl podokna.
cxWidth
Odkaz na celé číslo, které je nastaveno na šířku podokna.
CStatusBar::GetPaneStyle
Voláním této členské funkce načtěte styl podokna stavového řádku.
UINT GetPaneStyle(int nIndex) const;
Parametry
nIndex
Index podokna, jehož styl se má načíst.
Návratová hodnota
Styl stavového řádku určeného parametrem nIndex.
Poznámky
Styl podokna určuje způsob zobrazení podokna.
Seznam stylů dostupných pro stavové řádky najdete v tématu Vytvoření.
CStatusBar::GetPaneText
Voláním této členské funkce načtěte text, který se zobrazí v podokně stavového řádku.
CString GetPaneText(int nIndex) const; void GetPaneText(int nIndex, CString& rString) const;
Parametry
nIndex
Index podokna, jehož text se má načíst
rString
Odkaz na CString objekt, který obsahuje text, který má být načten.
Návratová hodnota
Objekt CString
obsahující text podokna.
Poznámky
Druhý formulář této členské funkce vyplní CString
objekt textem řetězce.
CStatusBar::GetStatusBarCtrl
Tato členová funkce umožňuje přímý přístup k základnímu společnému řízení.
CStatusBarCtrl& GetStatusBarCtrl() const;
Návratová hodnota
Obsahuje odkaz na CStatusBarCtrl objektu.
Poznámky
Umožňuje GetStatusBarCtrl
využít výhod funkcí běžného ovládacího prvku stavového řádku Windows a využít podporu CStatusBarCtrl poskytuje přizpůsobení stavového řádku. Pomocí běžného ovládacího prvku můžete například zadat styl, který zahrnuje úchyt pro změnu velikosti na stavovém řádku, nebo můžete určit styl, který bude mít stavový řádek zobrazený v horní části klientské oblasti nadřazeného okna.
Další obecné informace o běžných ovládacích prvcích naleznete v tématu Běžné ovládací prvky v sadě Windows SDK.
CStatusBar::SetIndicators
Nastaví ID každého indikátoru na hodnotu určenou odpovídajícím prvkem pole lpIDArray, načte prostředek řetězce určený jednotlivými ID a nastaví text ukazatele na řetězec.
BOOL SetIndicators(
const UINT* lpIDArray,
int nIDCount);
Parametry
lpIDArray
Ukazatel na pole ID.
nIDCount
Počet prvků v poli odkazovaných na lpIDArray.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
CStatusBar::SetPaneInfo
Nastaví zadané podokno indikátoru na nové ID, styl a šířku.
void SetPaneInfo(
int nIndex,
UINT nID,
UINT nStyle,
int cxWidth);
Parametry
nIndex
Index podokna indikátorů, jehož styl se má nastavit.
Nid
Nové ID podokna indikátoru
nStyle
Nový styl podokna indikátorů
cxWidth
Nová šířka podokna indikátoru
Poznámky
Podporují se následující styly indikátorů:
SBPS_NOBORDERS kolem podokna bez prostorového ohraničení.
SBPS_POPOUT Obrácené ohraničení tak, aby se text "vysvítal".
SBPS_DISABLED Nenakreslit text.
SBPS_STRETCH podokno Roztáhnout, aby se vyplnilo nevyužité místo. Tento styl může mít jenom jedno podokno na stavovém řádku.
SBPS_NORMAL Bez roztažení, ohraničení nebo automaticky otevíraných oken.
CStatusBar::SetPaneStyle
Voláním této členské funkce nastavíte styl podokna stavového řádku.
void SetPaneStyle(
int nIndex,
UINT nStyle);
Parametry
nIndex
Index podokna, jehož styl se má nastavit.
nStyle
Styl podokna, jehož styl se má nastavit.
Poznámky
Styl podokna určuje způsob zobrazení podokna.
Seznam stylů dostupných pro stavové pruhy najdete v tématu SetPaneInfo.
CStatusBar::SetPaneText
Voláním této členské funkce nastavíte text podokna na řetězec, na který odkazuje lpszNewText.
BOOL SetPaneText(
int nIndex,
LPCTSTR lpszNewText,
BOOL bUpdate = TRUE);
Parametry
nIndex
Index podokna, jehož text se má nastavit.
lpszNewText
Ukazatel na nový text podokna
bUpdate
Pokud je hodnota TRUE, podokno se po nastavení textu zneplatní.
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Po volání SetPaneText
musíte přidat obslužnou rutinu aktualizace uživatelského rozhraní pro zobrazení nového textu na stavovém řádku.
Příklad
//Sets and displays text for pane index 3 and id ID_INDICATOR_SCRL
m_wndStatusBar.SetPaneText(3, _T("My New Status Bar Text"), TRUE);
//UI handler in the message map updates the status bar text:
ON_UPDATE_COMMAND_UI(ID_INDICATOR_SCRL, &CMainFrame::OnUpdatePane)
void CMainFrame::OnUpdatePane(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
}
Viz také
MFC – ukázkové CTRLBARS
Ukázková DLGCBR32 MFC
CControlBar – třída
Graf hierarchie
CStatusBarCtrl – třída
CControlBar – třída