setScrollInfo 函数 (winuser.h)

SetScrollInfo 函数设置滚动条的参数,包括最小和最大滚动位置、页面大小以及滚动框 (拇指) 的位置。 如果请求,函数还会重绘滚动条。

语法

int SetScrollInfo(
  [in] HWND          hwnd,
  [in] int           nBar,
  [in] LPCSCROLLINFO lpsi,
  [in] BOOL          redraw
);

参数

[in] hwnd

类型: HWND

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

[in] nBar

类型: int

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

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

[in] lpsi

类型: LPCSCROLLINFO

指向 SCROLLINFO 结构的指针。 在调用 SetScrollInfo 之前,请将结构的 cbSize 成员设置为 sizeof (SCROLLINFO) ,将 fMask 成员设置为指示要设置的参数,并在相应成员中指定新的参数值。

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

Value 含义
SIF_DISABLENOSCROLL
如果滚动条的新参数使滚动条变得不必要,则禁用滚动条,而不是将其删除。
SIF_PAGE
将滚动页设置为 lpsi 指向的 SCROLLINFO 结构的 nPage 成员中指定的值。
SIF_POS
将滚动位置设置为 lpsi 指向的 SCROLLINFO 结构的 nPos 成员中指定的值。
SIF_RANGE
将滚动范围设置为 lpsi 指向的 SCROLLINFO 结构的 nMinnMax 成员中指定的值。

[in] redraw

类型: BOOL

指定是否重绘滚动条以反映对滚动条所做的更改。 如果此参数为 TRUE,则重新绘制滚动条,否则不会重绘滚动条。

返回值

类型: int

返回值是滚动框的当前位置。

注解

SetScrollInfo 函数对 SCROLLINFO 结构的 nPagenPos 成员指定的值执行范围检查。 nPage 成员必须指定介于 0 到 nMax - nMin +1 的值。 nPos 成员必须指定 nMinnMax - max max ( nPage – 1, 0) 之间的值。 如果任一值超出其范围,则函数将其设置为恰好在范围内的值。

如果 fnBar 参数SB_CTL并且 hwnd 参数指定的窗口不是系统滚动条控件,则系统会将SBM_SETSCROLLINFO消息发送到窗口,以设置滚动条信息 (如果请求仅针对位置或范围) ,则系统可将消息优化为SBM_SETPOS或SBM_SETRANGE。 这允许 SetScrollInfo 对模拟滚动条的自定义控件进行操作。 如果窗口未处理 SBM_SETSCROLLINFO (或优化 SBM_SETPOS 消息或 SBM_SETRANGE 消息) ,则 SetScrollInfo 函数将失败。

有关示例,请参阅 使用WM_PAINT消息滚动文本

要求

   
最低受支持的客户端 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 (

另请参阅

GetScrollInfo

引用

SCROLLINFO