GetScrollInfo 函数 (winuser.h)

GetScrollInfo 函数检索滚动条的参数,包括最小和最大滚动位置、页面大小以及滚动框 (thumb) 的位置。

语法

BOOL GetScrollInfo(
  [in]      HWND         hwnd,
  [in]      int          nBar,
  [in, out] LPSCROLLINFO lpsi
);

参数

[in] hwnd

类型: HWND

滚动条控件或具有标准滚动条的窗口的句柄,具体取决于 fnBar 参数的值。

[in] nBar

类型: int

指定要检索其参数的滚动条的类型。 此参数的取值可为下列值之一:

含义
SB_CTL
检索滚动条控件的参数。 hwnd 参数必须是滚动条控件的句柄。
SB_HORZ
检索窗口标准水平滚动条的参数。
SB_VERT
检索窗口标准垂直滚动条的参数。

[in, out] lpsi

类型: LPSCROLLINFO

指向 SCROLLINFO 结构的指针。 在调用 GetScrollInfo 之前,请将 cbSize 成员设置为 sizeof (SCROLLINFO) ,并将 fMask 成员设置为指定要检索的滚动条参数。 在返回之前,函数将指定的参数复制到结构的相应成员。

fMask 成员可以是以下一个或多个值。

含义
SIF_PAGE
将滚动页复制到 lpsi 指向的 SCROLLINFO 结构的 nPage 成员。
SIF_POS
将滚动位置复制到 lpsi 指向的 SCROLLINFO 结构的 nPos 成员。
SIF_RANGE
将滚动范围复制到 lpsi 指向的 SCROLLINFO 结构的 nMinnMax 成员。
SIF_TRACKPOS
将当前滚动框跟踪位置复制到 lpsi 指向的 SCROLLINFO 结构的 nTrackPos 成员。

返回值

类型: BOOL

如果函数检索了任何值,则返回值为非零值。

如果函数未检索任何值,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

GetScrollInfo 函数使应用程序能够使用 32 位滚动位置。 尽管指示滚动条位置的消息 WM_HSCROLLWM_VSCROLL仅提供 16 位的位置数据,但 函数 SetScrollInfoGetScrollInfo 提供 32 位滚动条位置数据。 因此,应用程序可以在处理WM_HSCROLLWM_VSCROLL消息时调用 GetScrollInfo 以获取 32 位滚动条位置数据。

若要在WM_HSCROLL或WM_VSCROLL消息SB_THUMBTRACK请求代码期间获取滚动框 (拇指 ) 的 32 位位置,请使用 SCROLLINFO 结构的 fMask 成员中的SIF_TRACKPOS值调用 GetScrollInfo。 函数返回 SCROLLINFO 结构的 nTrackPos 成员中滚动框的跟踪位置。 这使你可以在用户移动滚动框时获取滚动框的位置。 以下示例代码演示了此方法。

SCROLLINFO si;
case WM_HSCROLL:
    switch(LOWORD(wparam)) {
        case SB_THUMBTRACK:
          // Initialize SCROLLINFO structure
 
            ZeroMemory(&si, sizeof(si));
            si.cbSize = sizeof(si);
            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;
        .
        .
        .
    }

如果 fnBar 参数SB_CTL并且 hwnd 参数指定的窗口不是系统滚动条控件,则系统会将 SBM_GETSCROLLINFO 消息发送到窗口以获取滚动条信息。 这允许 GetScrollInfo 对模拟滚动条的自定义控件进行操作。 如果窗口不处理 SBM_GETSCROLLINFO 消息, 则 GetScrollInfo 函数将失败。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winuser.h (包括 Windows.h)
Library User32.lib
DLL User32.dll
API 集 在 Windows 8.1) 中引入的 ext-ms-win-ntuser-misc-l1-2-0 (

另请参阅

引用

SCROLLINFO

SetScrollInfo

WM_HSCROLL

WM_VSCROLL