GetScrollInfo 函数 (winuser.h)
GetScrollInfo 函数检索滚动条的参数,包括最小和最大滚动位置、页面大小以及滚动框 (thumb) 的位置。
语法
BOOL GetScrollInfo(
[in] HWND hwnd,
[in] int nBar,
[in, out] LPSCROLLINFO lpsi
);
参数
[in] hwnd
类型: HWND
滚动条控件或具有标准滚动条的窗口的句柄,具体取决于 fnBar 参数的值。
[in] nBar
类型: int
指定要检索其参数的滚动条的类型。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
检索滚动条控件的参数。 hwnd 参数必须是滚动条控件的句柄。 |
|
检索窗口标准水平滚动条的参数。 |
|
检索窗口标准垂直滚动条的参数。 |
[in, out] lpsi
类型: LPSCROLLINFO
指向 SCROLLINFO 结构的指针。 在调用 GetScrollInfo 之前,请将 cbSize 成员设置为 sizeof (SCROLLINFO) ,并将 fMask 成员设置为指定要检索的滚动条参数。 在返回之前,函数将指定的参数复制到结构的相应成员。
fMask 成员可以是以下一个或多个值。
值 | 含义 |
---|---|
|
将滚动页复制到 lpsi 指向的 SCROLLINFO 结构的 nPage 成员。 |
|
将滚动位置复制到 lpsi 指向的 SCROLLINFO 结构的 nPos 成员。 |
|
将滚动范围复制到 lpsi 指向的 SCROLLINFO 结构的 nMin 和 nMax 成员。 |
|
将当前滚动框跟踪位置复制到 lpsi 指向的 SCROLLINFO 结构的 nTrackPos 成员。 |
返回值
类型: BOOL
如果函数检索了任何值,则返回值为非零值。
如果函数未检索任何值,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
GetScrollInfo 函数使应用程序能够使用 32 位滚动位置。 尽管指示滚动条位置的消息 WM_HSCROLL 和 WM_VSCROLL仅提供 16 位的位置数据,但 函数 SetScrollInfo 和 GetScrollInfo 提供 32 位滚动条位置数据。 因此,应用程序可以在处理WM_HSCROLL或WM_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 ( |
另请参阅
引用