An application sends the SBM_GETSCROLLINFO message to retrieve the parameters of a scroll bar.
SBM_GETSCROLLINFO wParam = 0; // not used, must be zero lParam = (LPARAM) (LPSCROLLINFO) lpsi; // scroll bar parameters
The fMask member can be a combination of the following values:
Value |
Meaning |
SIF_ALL |
Combination of SIF_PAGE, SIF_POS, SIF_RANGE, and SIF_TRACKPOS. |
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 nMin and 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. |
If the message retrieved any values, the return value is TRUE; otherwise, it is FALSE.
The messages that indicate scroll-bar position, WM_HSCROLL and WM_VSCROLL, provide only 16 bits of position data. However, the SCROLLINFO structure used by SBM_GETSCROLLINFO, SBM_SETSCROLLINFO, GetScrollInfo, and SetScrollInfo provides 32 bits of scroll-bar position data. You can use these messages and functions 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 notification in a WM_HSCROLL or WM_VSCROLL message, send SBM_GETSCROLLINFO with the SIF_TRACKPOS value in the fMask member of the SCROLLINFO structure. The message 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. Alternatively, you can use the GetScrollInfo function to get the same information.