Compartilhar via


GetScrollInfo (Compact 2013)

3/28/2014

This function retrieves the parameters of a scroll bar, including the minimum and maximum scrolling positions, the page size, and the position of the scroll box (thumb).

Syntax

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

Parameters

  • hwnd
    Handle to a scroll bar control or a window with a standard scroll bar, depending on the value of the fnBar parameter.
  • fnBar
    Specifies the type of scroll bar for which to retrieve parameters. It is one of the following values.

    Value

    Description

    SB_CTL

    Retrieves the parameters for a scroll bar control. The hwnd parameter must be the handle to the scroll bar control.

    SB_HORZ

    Retrieves the parameters for the given window's standard horizontal scroll bar.

    SB_VERT

    Retrieves the parameters for the given window's standard vertical scroll bar.

  • lpsi
    Long pointer to a SCROLLINFO structure. Before calling GetScrollInfo, set the cbSize member of the structure to sizeof(SCROLLINFO), and set the fMask member to specify the scroll bar parameters to retrieve. Before returning, the function copies the specified parameters to the appropriate members of the structure.

    The fMask member can be a combination of the following values.

    Value

    Description

    SIF_PAGE

    Copies the scroll page to the nPage member of the SCROLLINFO structure pointed to by lpsi.

    SIF_POS

    Copies the scroll position to the nPos member of the SCROLLINFO structure pointed to by lpsi.

    SIF_RANGE

    Copies the scroll range to the nMinand nMax members of the SCROLLINFO structure pointed to by lpsi.

    SIF_TRACKPOS

    Copies the current scroll box tracking position to the nTrackPos member of the SCROLLINFO structure pointed to by lpsi.

Return Value

Nonzero indicates success. Zero indicates failure. To get extended error information, call GetLastError.

Remarks

The GetScrollInfo function enables applications to use 32-bit scroll positions. Although the messages that indicate scroll-bar position, WM_HSCROLL and WM_VSCROLL, provide only 16 bits of position data, the functions SetScrollInfo and GetScrollInfo provide 32 bits of scroll-bar position data. Thus, an application can call GetScrollInfo while processing either the WM_HSCROLL or WM_VSCROLL messages to obtain 32-bit scroll-bar position data.

To get the 32-bit position of the scroll box (thumb) during a SB_THUMBTRACK message in a WM_HSCROLL or WM_VSCROLL message, call GetScrollInfo with the SIF_TRACKPOS value in the fMask member of the SCROLLINFO structure. The function returns the tracking position of the scroll box in the nTrackPos member of the SCROLLINFO structure. This allows you to get the position of the scroll box as the user moves it. The following sample code illustrates the technique.

SCROLLINFO si;
case WM_HSCROLL:
 switch(LOWORD(wparam)) {
 case SB_THUMBTRACK:
 // Initialize SCROLLINFO structure
 
 ZeroMemory(&si, sizeof(SCROLLINFO));
 si.cbSize = sizeof(SCROLLINFO);
 si.fMask = SIF_TRACKPOS;
 
 // Call GetScrollInfo to get current tracking 
 // position in si.nTrackPos
 
 if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
 return 1; // GetScrollInfo failed
 break;
 .
 .
 .
 }

Requirements

Header

winuser.h

Library

Sbcmn.lib

See Also

Reference

Scroll Bar Functions
SetScrollInfo
WM_HSCROLL
WM_VSCROLL
SCROLLINFO