setScrollPos 函数 (winuser.h)
SetScrollPos 函数 (thumb) 指定滚动条中设置滚动框的位置,并根据需要重绘滚动条以反映滚动框的新位置。
语法
int SetScrollPos(
[in] HWND hWnd,
[in] int nBar,
[in] int nPos,
[in] BOOL bRedraw
);
参数
[in] hWnd
类型: HWND
滚动条控件或具有标准滚动条的窗口的句柄,具体取决于 nBar 参数的值。
[in] nBar
类型: int
指定要设置的滚动条。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
设置滚动条控件中滚动框的位置。 hwnd 参数必须是滚动条控件的句柄。 |
|
设置滚动框在窗口的标准水平滚动条中的位置。 |
|
设置窗口标准垂直滚动条中滚动框的位置。 |
[in] nPos
类型: int
指定滚动框的新位置。 位置必须在滚动范围内。 有关滚动范围的详细信息,请参阅 SetScrollRange 函数。
[in] bRedraw
类型: BOOL
指定是否重绘滚动条以反映新的滚动框位置。 如果此参数为 TRUE,则重绘滚动条。 如果为 FALSE,则不重绘滚动条。
返回值
类型: int
如果函数成功,则返回值为滚动框的上一位置。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
如果滚动条是通过对另一个函数的后续调用重绘的,则将 bRedraw 参数设置为 FALSE 会很有用。
由于指示滚动条位置的消息 (WM_HSCROLL 和 WM_VSCROLL)限制为 16 位位置数据,因此仅依赖这些消息获取位置数据的应用程序对于 SetScrollPos 函数的 nPos 参数的实际最大值为 65,535。
但是,由于 SetScrollInfo、 SetScrollPos、 SetScrollRange、 GetScrollInfo、 GetScrollPos 和 GetScrollRange 函数支持 32 位滚动条位置数据,因此有一种方法可以绕过 WM_HSCROLL 和 WM_VSCROLL 消息的 16 位屏障。 有关技术的说明,请参阅 GetScrollInfo 。
如果 nBar 参数SB_CTL并且 hWnd 参数指定的窗口不是系统滚动条控件,则系统会将 SBM_SETPOS 消息发送到窗口以设置滚动条信息。 这允许 SetScrollPos 对模拟滚动条的自定义控件进行操作。 如果窗口不处理 SBM_SETPOS 消息, SetScrollPos 函数将失败。
要求
最低受支持的客户端 | 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 ( |
另请参阅
引用