CScrollBar
Klasa
Udostępnia funkcje kontrolki paska przewijania systemu Windows.
Składnia
class CScrollBar : public CWnd
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CScrollBar::CScrollBar |
CScrollBar Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CScrollBar::Create |
Tworzy pasek przewijania systemu Windows i dołącza go do CScrollBar obiektu. |
CScrollBar::EnableScrollBar |
Włącza lub wyłącza jedną lub obie strzałki paska przewijania. |
CScrollBar::GetScrollBarInfo |
Pobiera informacje o pasku przewijania SCROLLBARINFO przy użyciu struktury. |
CScrollBar::GetScrollInfo |
Pobiera informacje o pasku przewijania. |
CScrollBar::GetScrollLimit |
Pobiera limit paska przewijania |
CScrollBar::GetScrollPos |
Pobiera bieżącą pozycję pola przewijania. |
CScrollBar::GetScrollRange |
Pobiera bieżące minimalne i maksymalne położenia paska przewijania dla danego paska przewijania. |
CScrollBar::SetScrollInfo |
Ustawia informacje o pasku przewijania. |
CScrollBar::SetScrollPos |
Ustawia bieżące położenie pola przewijania. |
CScrollBar::SetScrollRange |
Ustawia wartości minimalnej i maksymalnej pozycji dla danego paska przewijania. |
CScrollBar::ShowScrollBar |
Wyświetla lub ukrywa pasek przewijania. |
Uwagi
Kontrolkę paska przewijania można utworzyć w dwóch krokach. Najpierw wywołaj konstruktor CScrollBar
, aby skonstruować CScrollBar
obiekt, a następnie wywołaj Create
funkcję składową, aby utworzyć kontrolkę paska przewijania systemu Windows i dołączyć ją do CScrollBar
obiektu.
Jeśli utworzysz CScrollBar
obiekt w oknie dialogowym (za pomocą zasobu okna dialogowego), CScrollBar
obiekt zostanie automatycznie zniszczony, gdy użytkownik zamknie okno dialogowe.
Jeśli utworzysz CScrollBar
obiekt w oknie, może być również konieczne jego zniszczenie.
Jeśli utworzysz CScrollBar
obiekt na stosie, zostanie on automatycznie zniszczony. Jeśli utworzysz CScrollBar
obiekt na stercie przy użyciu new
funkcji, musisz wywołać delete
obiekt, aby go zniszczyć, gdy użytkownik zakończy pasek przewijania systemu Windows.
Jeśli przydzielisz jakąkolwiek pamięć w CScrollBar
obiekcie, przesłoń CScrollBar
destruktor w celu usunięcia alokacji.
Aby uzyskać powiązane informacje o korzystaniu z programu CScrollBar
, zobacz Kontrolki.
Hierarchia dziedziczenia
CScrollBar
Wymagania
Nagłówek: afxwin.h
CScrollBar::Create
Tworzy pasek przewijania systemu Windows i dołącza go do CScrollBar
obiektu.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Parametry
dwStyle
Określa styl paska przewijania. Zastosuj dowolną kombinację stylów paska przewijania do paska przewijania.
rect
Określa rozmiar i położenie paska przewijania. Może być strukturą RECT
lub obiektem CRect
.
pParentWnd
Określa okno nadrzędne paska przewijania, zwykle CDialog
obiekt. Nie może to być NULL
.
nID
Identyfikator kontrolki paska przewijania.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Obiekt jest konstruowany CScrollBar
w dwóch krokach. Najpierw wywołaj konstruktor, który konstruuje CScrollBar
obiekt, a następnie wywołaj Create
metodę , która tworzy i inicjuje skojarzony pasek przewijania systemu Windows i dołącza go do CScrollBar
obiektu.
Zastosuj następujące style okna do paska przewijania:
WS_CHILD
ZawszeWS_VISIBLE
ZwykleWS_DISABLED
RzadkoWS_GROUP
Aby grupować kontrolki
Przykład
// 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
Tworzy obiekt.
CScrollBar();
Uwagi
Po utworzeniu obiektu wywołaj funkcję składową Create
, aby utworzyć i zainicjować pasek przewijania systemu Windows.
Przykład
CScrollBar m_ScrollBarHorz;
CScrollBar::EnableScrollBar
Włącza lub wyłącza jedną lub obie strzałki paska przewijania.
BOOL EnableScrollBar(UINT nArrowFlags = ESB_ENABLE_BOTH);
Parametry
nArrowFlags
Określa, czy strzałki przewijania są włączone, czy wyłączone i które strzałki są włączone lub wyłączone. Ten parametr może być jedną z następujących wartości:
ESB_ENABLE_BOTH
Włącza obie strzałki paska przewijania.ESB_DISABLE_LTUP
Wyłącza strzałkę w lewo poziomego paska przewijania lub strzałkę w górę pionowego paska przewijania.ESB_DISABLE_RTDN
Wyłącza strzałkę w prawo poziomego paska przewijania lub strzałkę w dół pionowego paska przewijania.ESB_DISABLE_BOTH
Wyłącza obie strzałki paska przewijania.
Wartość zwracana
Niezerowe, jeśli strzałki są włączone lub wyłączone zgodnie z określoną wartością; w przeciwnym razie 0, co wskazuje, że strzałki są już w żądanym stanie lub że wystąpił błąd.
Przykład
Zobacz przykład dla elementu CScrollBar::SetScrollRange
.
CScrollBar::GetScrollBarInfo
Pobiera informacje, które SCROLLBARINFO
struktura utrzymuje na pasku przewijania.
BOOL GetScrollBarInfo(PSCROLLBARINFO pScrollInfo) const;
Parametry
pScrollInfo
Wskaźnik do SCROLLBARINFO
struktury.
Wartość zwracana
Zwraca powodzenie TRUE
po FALSE
niepowodzeniu.
Uwagi
Ta funkcja składowa emuluje funkcjonalność komunikatu SBM_SCROLLBARINFO
zgodnie z opisem w zestawie WINDOWS SDK.
CScrollBar::GetScrollInfo
Pobiera informacje, które SCROLLINFO
struktura utrzymuje na pasku przewijania.
BOOL GetScrollInfo(
LPSCROLLINFO lpScrollInfo,
UINT nMask = SIF_ALL);
Parametry
lpScrollInfo
Wskaźnik do SCROLLINFO
struktury. Aby uzyskać więcej informacji na temat tej struktury, zobacz zestaw Windows SDK.
nMask
Określa parametry paska przewijania do pobrania. Typowe użycie, SIF_ALL
, określa kombinację SIF_PAGE
, SIF_POS
, SIF_TRACKPOS
i SIF_RANGE
. Zobacz SCROLLINFO
, aby uzyskać więcej informacji na temat nMask
wartości.
Wartość zwracana
Jeśli komunikat pobrał jakiekolwiek wartości, zwraca TRUE
wartość . W przeciwnym razie jest to FALSE
.
Uwagi
GetScrollInfo
Umożliwia aplikacjom używanie 32-bitowych pozycji przewijania.
Struktura SCROLLINFO
zawiera informacje o pasku przewijania, w tym minimalne i maksymalne pozycje przewijania, rozmiar strony i położenie pola przewijania (kciuk). SCROLLINFO
Zobacz temat struktury w zestawie Windows SDK, aby uzyskać więcej informacji na temat zmieniania domyślnych ustawień struktury.
Programy obsługi komunikatów systemu Windows MFC wskazujące położenie paska przewijania, CWnd::OnHScroll
i CWnd::OnVScroll
, zawierają tylko 16 bitów danych położenia. GetScrollInfo
i SetScrollInfo
podaj 32 bity danych położenia paska przewijania. W związku z tym aplikacja może wywołać GetScrollInfo
funkcję podczas przetwarzania CWnd::OnHScroll
lub CWnd::OnVScroll
uzyskać 32-bitowe dane położenia paska przewijania.
Przykład
Zobacz przykład dla elementu CWnd::OnHScroll
.
CScrollBar::GetScrollLimit
Pobiera maksymalną pozycję przewijania paska przewijania.
int GetScrollLimit();
Wartość zwracana
Określa maksymalną pozycję paska przewijania w przypadku powodzenia; w przeciwnym razie 0.
Przykład
Zobacz przykład dla elementu CWnd::OnHScroll
.
CScrollBar::GetScrollPos
Pobiera bieżącą pozycję pola przewijania.
int GetScrollPos() const;
Wartość zwracana
Określa bieżącą pozycję pola przewijania, jeśli operacja się powiedzie; w przeciwnym razie 0.
Uwagi
Bieżące położenie jest wartością względną, która zależy od bieżącego zakresu przewijania. Jeśli na przykład zakres przewijania wynosi od 100 do 200, a pole przewijania znajduje się w środku paska, bieżąca pozycja to 150.
Przykład
Zobacz przykład dla elementu CWnd::OnHScroll
.
CScrollBar::GetScrollRange
Kopiuje bieżące minimalne i maksymalne pozycje paska przewijania dla danego paska przewijania do lokalizacji określonych przez lpMinPos
i lpMaxPos
.
void GetScrollRange(
LPINT lpMinPos,
LPINT lpMaxPos) const;
Parametry
lpMinPos
Wskazuje zmienną całkowitą, która ma otrzymać minimalną pozycję.
lpMaxPos
Wskazuje zmienną całkowitą, która ma otrzymać maksymalną pozycję.
Uwagi
Domyślny zakres kontrolki paska przewijania jest pusty (obie wartości to 0).
Przykład
Zobacz przykład dla elementu CWnd::OnHScroll
.
CScrollBar::SetScrollInfo
Ustawia informacje, które SCROLLINFO
struktura utrzymuje na pasku przewijania.
BOOL SetScrollInfo(
LPSCROLLINFO lpScrollInfo,
BOOL bRedraw = TRUE);
Parametry
lpScrollInfo
Wskaźnik do SCROLLINFO
struktury.
bRedraw
Określa, czy pasek przewijania ma zostać ponownie wyrysowyny, aby odzwierciedlić nowe informacje. Jeśli bRedraw
ma wartość TRUE
, pasek przewijania zostanie ponownie narysowane. Jeśli jest to FALSE
wartość , nie zostanie ona ponownie wyrysowana. Pasek przewijania jest domyślnie ponownie rysowany.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość TRUE
. W przeciwnym razie jest to FALSE
.
Uwagi
Należy podać wartości wymagane przez SCROLLINFO
parametry struktury, w tym wartości flagi.
Struktura SCROLLINFO
zawiera informacje o pasku przewijania, w tym minimalne i maksymalne pozycje przewijania, rozmiar strony i położenie pola przewijania (kciuk). SCROLLINFO
Zobacz temat struktury w zestawie Windows SDK, aby uzyskać więcej informacji na temat zmieniania domyślnych ustawień struktury.
Przykład
// 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
Ustawia bieżące położenie pola przewijania do określonego przez nPos
i, jeśli określono, ponownie rysuje pasek przewijania, aby odzwierciedlić nową pozycję.
int SetScrollPos(
int nPos,
BOOL bRedraw = TRUE);
Parametry
nPos
Określa nowe położenie pola przewijania. Musi znajdować się w zakresie przewijania.
bRedraw
Określa, czy pasek przewijania ma zostać ponownie wyrysowyny, aby odzwierciedlić nową pozycję. Jeśli bRedraw
ma wartość TRUE
, pasek przewijania zostanie ponownie narysowane. Jeśli jest to FALSE
wartość , nie zostanie ona ponownie wyrysowana. Pasek przewijania jest domyślnie ponownie rysowany.
Wartość zwracana
Określa poprzednie położenie pola przewijania, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
Ustaw bRedraw
wartość na FALSE
zawsze, gdy pasek przewijania zostanie ponownie narysowany przez kolejne wywołanie innej funkcji, aby uniknąć ponownego narysowania paska przewijania dwa razy w krótkim odstępie czasu.
Przykład
Zobacz przykład CScrollBar::SetScrollRange.
CScrollBar::SetScrollRange
Ustawia wartości minimalnej i maksymalnej pozycji dla danego paska przewijania.
void SetScrollRange(
int nMinPos,
int nMaxPos,
BOOL bRedraw = TRUE);
Parametry
nMinPos
Określa minimalną pozycję przewijania.
nMaxPos
Określa maksymalną pozycję przewijania.
bRedraw
Określa, czy pasek przewijania ma zostać ponownie wyrysowyny, aby odzwierciedlić zmianę. Jeśli bRedraw
ma TRUE
wartość , pasek przewijania zostanie ponownie narysowane; jeśli FALSE
parametr nie zostanie ponownie narysowane. Domyślnie jest ona rysowana ponownie.
Uwagi
Ustaw nMinPos
wartość i nMaxPos
na 0, aby ukryć standardowe paski przewijania.
Nie należy wywoływać tej funkcji, aby ukryć pasek przewijania podczas przetwarzania komunikatu powiadomienia paska przewijania.
Jeśli wywołanie polecenia SetScrollRange
natychmiast następuje wywołanie funkcji składowej SetScrollPos
, ustaw bRedraw
SetScrollPos
wartość na 0, aby zapobiec dwukrotnemu ponownemu rysowaniu paska przewijania.
Różnica między wartościami określonymi przez nMinPos
i nMaxPos
nie może być większa niż 32 767. Domyślny zakres kontrolki paska przewijania jest pusty (zarówno, jak nMinPos
i nMaxPos
0).
Przykład
// 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
Wyświetla lub ukrywa pasek przewijania.
void ShowScrollBar(BOOL bShow = TRUE);
Parametry
bShow
Określa, czy pasek przewijania jest wyświetlany, czy ukryty. Jeśli ten parametr to TRUE
, zostanie wyświetlony pasek przewijania; w przeciwnym razie jest ukryty.
Uwagi
Aplikacja nie powinna wywoływać tej funkcji, aby ukryć pasek przewijania podczas przetwarzania komunikatu powiadomienia paska przewijania.
Przykład
Zobacz przykład dla elementu CScrollBar::Create
.
Zobacz też
CWnd
Klasa
Wykres hierarchii
CButton
Klasa
CComboBox
Klasa
CEdit
Klasa
CListBox
Klasa
CStatic
Klasa
CDialog
Klasa