CScrollBar
Třída
Poskytuje funkce ovládacího prvku posuvníku windows.
Syntaxe
class CScrollBar : public CWnd
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CScrollBar::CScrollBar |
CScrollBar Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CScrollBar::Create |
Vytvoří posuvník Windows a připojí ho k objektu CScrollBar . |
CScrollBar::EnableScrollBar |
Povolí nebo zakáže jednu nebo obě šipky posuvníku. |
CScrollBar::GetScrollBarInfo |
Načte informace o posuvníku SCROLLBARINFO pomocí struktury. |
CScrollBar::GetScrollInfo |
Načte informace o posuvníku. |
CScrollBar::GetScrollLimit |
Načte limit posuvníku. |
CScrollBar::GetScrollPos |
Načte aktuální pozici posuvníku. |
CScrollBar::GetScrollRange |
Načte aktuální minimální a maximální pozici posuvníku pro daný posuvník. |
CScrollBar::SetScrollInfo |
Nastaví informace o posuvníku. |
CScrollBar::SetScrollPos |
Nastaví aktuální pozici posuvníku. |
CScrollBar::SetScrollRange |
Nastaví minimální a maximální hodnoty pozice pro daný posuvník. |
CScrollBar::ShowScrollBar |
Zobrazí nebo skryje posuvník. |
Poznámky
Ovládací prvek posuvníku vytvoříte ve dvou krocích. Nejprve zavolejte konstruktor CScrollBar
, který vytvoří CScrollBar
objekt, a potom zavolá Create
členovou funkci, která vytvoří ovládací prvek windows posuvníku a připojí ho k objektu CScrollBar
.
Pokud vytvoříte CScrollBar
objekt v dialogovém okně (prostřednictvím prostředku dialogového okna), CScrollBar
automaticky se zničí, když uživatel dialogové okno zavře.
Pokud v okně vytvoříte CScrollBar
objekt, budete ho možná muset také zničit.
Pokud vytvoříte CScrollBar
objekt v zásobníku, automaticky se zničí. Pokud vytvoříte CScrollBar
objekt na haldě new
pomocí funkce, musíte volat delete
objekt, aby ho zničil, když uživatel ukončí posuvník Windows.
Pokud přidělíte jakoukoli paměť v objektu CScrollBar
, přepište CScrollBar
destruktor a odstraňte přidělení.
Související informace o použití CScrollBar
naleznete v tématu Ovládací prvky.
Hierarchie dědičnosti
CScrollBar
Požadavky
Záhlaví: afxwin.h
CScrollBar::Create
Vytvoří posuvník Windows a připojí ho k objektu CScrollBar
.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Určuje styl posuvníku. Na posuvník použijte libovolnou kombinaci stylů posuvníku.
rect
Určuje velikost a umístění posuvníku. Může to být RECT
struktura nebo CRect
objekt.
pParentWnd
Určuje nadřazené okno posuvníku CDialog
, obvykle objekt. Nesmí to být NULL
.
nID
ID ovládacího prvku posuvníku
Návratová hodnota
Nenulové, pokud je úspěšné; jinak 0.
Poznámky
Objekt vytvoříte CScrollBar
ve dvou krocích. Nejprve zavolejte konstruktor, který objekt vytvoří CScrollBar
a Create
inicializuje přidružený posuvník Windows a připojí ho k objektu CScrollBar
.
Na posuvník použijte následující styly oken:
WS_CHILD
VždyWS_VISIBLE
ObvykleWS_DISABLED
ZřídkaWS_GROUP
Seskupení ovládacích prvků
Příklad
// Example 1:
// Create a horizontal CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). The scroll bar is NOT visible until the
// call ShowScrollBar() is made. m_ScrollBarHorz is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarHorz.Create(SBS_HORZ | SBS_TOPALIGN | WS_CHILD,
CRect(5, 5, 100, 30), this, IDC_SCROLLBARCTRL));
m_ScrollBarHorz.ShowScrollBar();
// Example 2:
// Create a vertical CScrollBar control as a child window of CMyDialog
// class (a CDialog-derived class). m_ScrollBarVert is of type CScrollBar
// class, and it is a member variable in CMyDialog class.
VERIFY(m_ScrollBarVert.Create(SBS_VERT | SBS_LEFTALIGN | WS_CHILD |
WS_VISIBLE,
CRect(5, 30, 30, 130), this, IDC_SCROLLBARCTRL));
CScrollBar::CScrollBar
CScrollBar
Vytvoří objekt.
CScrollBar();
Poznámky
Po vytvoření objektu zavolejte Create
členské funkce k vytvoření a inicializaci posuvníku Windows.
Příklad
CScrollBar m_ScrollBarHorz;
CScrollBar::EnableScrollBar
Povolí nebo zakáže jednu nebo obě šipky posuvníku.
BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);
Parametry
nArrowFlags
Určuje, jestli jsou šipky posuvníku povolené nebo zakázané a které šipky jsou povolené nebo zakázané. Tento parametr může být jedna z následujících hodnot:
ESB_ENABLE_BOTH
Povolí obě šipky posuvníku.ESB_DISABLE_LTUP
Zakáže šipku doleva vodorovného posuvníku nebo šipku nahoru svislého posuvníku.ESB_DISABLE_RTDN
Zakáže šipku doprava vodorovného posuvníku nebo šipku dolů svislého posuvníku.ESB_DISABLE_BOTH
Zakáže obě šipky posuvníku.
Návratová hodnota
Nenulové, pokud jsou šipky povoleny nebo zakázány podle zadaného nastavení; jinak 0, což znamená, že šipky jsou již v požadovaném stavu nebo že došlo k chybě.
Příklad
Podívejte se na příklad pro CScrollBar::SetScrollRange
.
CScrollBar::GetScrollBarInfo
Načte informace, které SCROLLBARINFO
struktura udržuje o posuvníku.
BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;
Parametry
pScrollInfo
Ukazatel na SCROLLBARINFO
strukturu.
Návratová hodnota
Vrátí TRUE
úspěch FALSE
při selhání.
Poznámky
Tato členová funkce emuluje funkce SBM_SCROLLBARINFO
zprávy, jak je popsáno v sadě Windows SDK.
CScrollBar::GetScrollInfo
Načte informace, které SCROLLINFO
struktura udržuje o posuvníku.
BOOL GetScrollInfo(
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
Parametry
lpScrollInfo
Ukazatel na SCROLLINFO
strukturu. Další informace o této struktuře najdete v sadě Windows SDK.
nMask
Určuje parametry posuvníku, které se mají načíst. Typické použití, SIF_ALL
, určuje kombinaci SIF_PAGE
, SIF_POS
, SIF_TRACKPOS
, a SIF_RANGE
. Další SCROLLINFO
informace o hodnotách nMask
.
Návratová hodnota
Pokud zpráva načetla nějaké hodnoty, vrátí se TRUE
. Jinak je to FALSE
.
Poznámky
GetScrollInfo
umožňuje aplikacím používat 32bitové pozice posouvání.
Struktura SCROLLINFO
obsahuje informace o posuvníku, včetně minimální a maximální pozice posouvání, velikosti stránky a pozice posuvníku (palce). SCROLLINFO
Další informace o změně výchozích hodnot struktury najdete v tématu struktury v sadě Windows SDK.
Obslužné rutiny zpráv MFC systému Windows označující pozici CWnd::OnHScroll
posuvníku a CWnd::OnVScroll
poskytují pouze 16 bitů dat o poloze. GetScrollInfo
a SetScrollInfo
poskytuje 32 bitů dat pozice posuvníku. Aplikace tedy může volat GetScrollInfo
při zpracování dat CWnd::OnHScroll
umístění 32bitového posuvníku nebo CWnd::OnVScroll
získat data o poloze 32bitového posuvníku.
Příklad
Podívejte se na příklad pro CWnd::OnHScroll
.
CScrollBar::GetScrollLimit
Načte maximální pozici posouvání posuvníku.
int GetScrollLimit();
Návratová hodnota
Určuje maximální pozici posuvníku v případě úspěchu; jinak 0.
Příklad
Podívejte se na příklad pro CWnd::OnHScroll
.
CScrollBar::GetScrollPos
Načte aktuální pozici posuvníku.
int GetScrollPos() const;
Návratová hodnota
Určuje aktuální pozici posuvníku v případě úspěchu; jinak 0.
Poznámky
Aktuální pozice je relativní hodnota, která závisí na aktuální oblasti posouvání. Pokud je například oblast posouvání 100 až 200 a posuvník je uprostřed pruhu, aktuální pozice je 150.
Příklad
Podívejte se na příklad pro CWnd::OnHScroll
.
CScrollBar::GetScrollRange
Zkopíruje aktuální minimální a maximální umístění posuvníku pro daný posuvník do umístění určených lpMinPos
pomocí a lpMaxPos
.
void GetScrollRange(
LPINT lpMinPos,
LPINT lpMaxPos) const;
Parametry
lpMinPos
Odkazuje na celočíselnou proměnnou, která má přijmout minimální pozici.
lpMaxPos
Odkazuje na celočíselnou proměnnou, která má přijmout maximální pozici.
Poznámky
Výchozí oblast ovládacího prvku posuvníku je prázdná (obě hodnoty jsou 0).
Příklad
Podívejte se na příklad pro CWnd::OnHScroll
.
CScrollBar::SetScrollInfo
Nastaví informace, které SCROLLINFO
struktura udržuje o posuvníku.
BOOL SetScrollInfo(
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
Parametry
lpScrollInfo
Ukazatel na SCROLLINFO
strukturu.
bRedraw
Určuje, zda má být posuvník překreslen tak, aby odrážel nové informace. Pokud bRedraw
ano TRUE
, posuvník je překreslen. Pokud je FALSE
, není překreslená. Posuvník se ve výchozím nastavení překreslí.
Návratová hodnota
V případě úspěchu je TRUE
vrácena hodnota . Jinak je to FALSE
.
Poznámky
Je nutné zadat hodnoty vyžadované SCROLLINFO
parametry struktury, včetně hodnot příznaku.
Struktura SCROLLINFO
obsahuje informace o posuvníku, včetně minimální a maximální pozice posouvání, velikosti stránky a pozice posuvníku (palce). SCROLLINFO
Další informace o změně výchozích hodnot struktury najdete v tématu struktury v sadě Windows SDK.
Příklad
// Set SCROLLINFO for the scroll bar. m_ScrollBarHorz is of type
// CScrollBar class, and it is a member variable in CMyDialog class.
SCROLLINFO info;
info.cbSize = sizeof(SCROLLINFO);
info.fMask = SIF_ALL;
info.nMin = 0;
info.nMax = 10;
info.nPage = 2;
info.nPos = 5;
info.nTrackPos = 2;
m_ScrollBarHorz.SetScrollInfo(&info);
CScrollBar::SetScrollPos
Nastaví aktuální pozici posuvníku podle zadaného nPos
pole a v případě zadání překreslí posuvník tak, aby odrážel nové umístění.
int SetScrollPos(
int nPos,
BOOL bRedraw = TRUE);
Parametry
nPos
Určuje nové umístění posuvníku. Musí být v rozsahu posouvání.
bRedraw
Určuje, zda má být posuvník překreslen tak, aby odrážel novou pozici. Pokud bRedraw
ano TRUE
, posuvník je překreslen. Pokud je FALSE
, není překreslená. Posuvník se ve výchozím nastavení překreslí.
Návratová hodnota
Určuje předchozí pozici posuvníku v případě úspěchu; jinak 0.
Poznámky
Nastavte bRedraw
na FALSE
vždy, když se posuvník překreslí následným voláním jiné funkce, aby se posuvník v krátkém intervalu překreslil dvakrát.
Příklad
Podívejte se na příklad pro CScrollBar::SetScrollRange.
CScrollBar::SetScrollRange
Nastaví minimální a maximální hodnoty pozice pro daný posuvník.
void SetScrollRange(
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
Parametry
nMinPos
Určuje minimální pozici posouvání.
nMaxPos
Určuje maximální pozici posouvání.
bRedraw
Určuje, jestli má být posuvník překreslen tak, aby odrážel změnu. Pokud bRedraw
je TRUE
, posuvník je překreslen; pokud FALSE
, není překreslen. Ve výchozím nastavení se překreslí.
Poznámky
Pokud chcete skrýt standardní posuvníky, nastavte nMinPos
hodnotu nMaxPos
0.
Tuto funkci nevolejte, pokud chcete při zpracování zprávy s oznámením na posuvníku skrýt posuvník.
Pokud volání bezprostředně následuje za voláním SetScrollRange
SetScrollPos
členské funkce, nastavte bRedraw
SetScrollPos
hodnotu 0, aby se posuvník překreslil dvakrát.
Rozdíl mezi hodnotami zadanými nMinPos
a nMaxPos
nesmí být větší než 32 767. Výchozí oblast ovládacího prvku posuvníku je prázdná (obě nMinPos
a nMaxPos
jsou 0).
Příklad
// Sets minimum (0) and maximum (10) position values for the
// CScrollBar control. m_ScrollBarVert is of type CScrollBar class,
// and it is a member variable in CMyDialog class.
m_ScrollBarVert.SetScrollRange(0, 10);
// Set the position of the scroll box.
m_ScrollBarVert.SetScrollPos(5);
// Disable the down arrow of the scroll bar. By default, both arrows
// are enabled.
m_ScrollBarVert.EnableScrollBar(ESB_DISABLE_DOWN);
CScrollBar::ShowScrollBar
Zobrazí nebo skryje posuvník.
void ShowScrollBar(BOOL bShow = TRUE);
Parametry
bShow
Určuje, jestli je posuvník zobrazený nebo skrytý. Pokud je TRUE
tento parametr , zobrazí se posuvník, jinak je skrytý.
Poznámky
Aplikace by neměla tuto funkci volat, aby při zpracování zprávy s oznámením na posuvníku skryla posuvník.
Příklad
Podívejte se na příklad pro CScrollBar::Create
.
Viz také
CWnd
Třída
Graf hierarchie
CButton
Třída
CComboBox
Třída
CEdit
Třída
CListBox
Třída
CStatic
Třída
CDialog
Třída