Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: jankowalski25
Biblioteki C/C++

GetScrollInfo

[funkcja] Pobiera parametry paska przewijania takie jak: minimalna i maksymalna pozycja, rozmiar strony oraz aktualna pozycja suwaka.

Składnia

C/C++
#include <windows.h>

BOOL GetScrollInfo( HWND hwnd, int fnBar, LPSCROLLINFO lpsi );

Argumenty

hwndUchwyt do ScrollBara lub okna zawierającego standardowy ScrollBar w zależności od wartości argumentu fnBar.
fnBarOkreśla typ ScrollBara. Może przyjmować jedną z poniższych wartości:
WartośćZnaczenie
SB_CTLPobiera argumenty dla ScrollBara. Wartość argumentu hwnd musi być uchwytem do ScrollBara.
SB_HORZPobiera argumenty dla standardowego poziomego ScrollBara.
SB_VERTPobiera argumenty dla standardowego pionowego ScrollBara.
lpsiWskaźnik do struktury SCROLLINFO. Przed wywołaniem tej funkcji ustaw wartość składowej cbSize tej struktury na
sizeof( SCROLLINFO )
 i ustaw wartość składowej fMask na określony argument ScrollBara do pobrania. Przed zwróceniem wartości funkcja kopiuje określone argumenty do składowych struktury. Wartość składowej fMask może być jedną z następujących stałych:
WartośćKopiowany elementNazwa składowej struktury SCROLLINFO
SIF_PAGEstrona przewijanianPage
SIF_POSpozycja przewijanianPos
SIF_RANGEzakres przewijanianMin oraz nMax
SIF_TRACKPOSpozycja przewijania ScrollBaranTrackPos

Zwracana wartość

Jeśli funkcja zakończy się normalnie, zwracana wartość jest niezerowa, inaczej zero. Aby uzyskać rozszerzone informacje o błędach, wywołaj funkcję » WinAPIGetLastError.

Dodatkowe informacje

Funkcja umożliwia używanie 32-bitowej pozycji przewijania. Mimo tego komunikaty wskazujące pozycję ScrollBara (WM_HSCROLL oraz WM_VSCROLL) zapewniają tylko 16 bitów dla danych pozycji, funkcje SetScrollInfo i GetScrollInfo zapewniają 32 bity dla danych pozycji ScrollBara. Jeśli wartość argumentu fnBar wynosi SB_CTL i okno określone przez argument hwnd nie jest systemowym ScrollBarem, system wysyła komunikat SBM_GETSCROLLINFO do okna, aby uzyskać informacje o ScrollBarze. To pozwala tej funkcji na ręczną kontrolę ScrollBara. Jeśli okno nie przechwytuje komunikatu SBM_GETSCROLLINFO, to ta funkcja zwróci błąd.

Przykłady

Program może wywołać tą funkcję podczas wykonywania komunikatów WM_HSCROLL i WM_VSCROLL, aby uzyskać 32-bitowe dane pozycji ScrollBara. Aby pobrać 32-bitową pozycję ScrollBara podczas powiadomienia SB_THUMBTRACK w komunikatach WM_HSCROLL i WM_VSCROLL, wywołaj tą funkcję z argumentem lpsi wskazującym na strukturę SCROLLINFO ze składową fMask o wartości SIF_TRACKPOS. Funkcja zapisze pozycję przewijania ScrollBara w składowej nTrackPos struktury SCROLLINFO. To pozwala pobrać pozycję ScrollBara, gdy użytkownik go przewija. Poniższy kod pokazuje tą technikę:
C/C++
case WM_HSCROLL:
{
    switch( LOWORD( wparam ) )
    {
    case SB_THUMBTRACK:
        {
            SCROLLINFO si;
            ZeroMemory( & si, sizeof( si ) );
            si.cbSize = sizeof( si );
            si.fMask = SIF_TRACKPOS;
            if( !GetScrollInfo( hwnd, SB_HORZ, & si ) ) return 1;
           
        } break;
    }
} break;

Wymagania

Minimalny system klientaWindows 2000 Professional (tylko aplikacje biurowe).
Minimalny system serweraWindows 2000 Server (tylko aplikacje biurowe).
NagłówekWinuser.h (dołącza Windows.h)
BibliotekaUser32.lib
DLLUser32.dll

Linki zewnętrzne