setScrollPos 函数 (winuser.h)

SetScrollPos 函数 (thumb) 指定滚动条中设置滚动框的位置,并根据需要重绘滚动条以反映滚动框的新位置。

注意 提供 SetScrollPos 函数是为了向后兼容。 新应用程序应使用 SetScrollInfo 函数。
 

语法

int SetScrollPos(
  [in] HWND hWnd,
  [in] int  nBar,
  [in] int  nPos,
  [in] BOOL bRedraw
);

参数

[in] hWnd

类型: HWND

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

[in] nBar

类型: int

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

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

[in] nPos

类型: int

指定滚动框的新位置。 位置必须在滚动范围内。 有关滚动范围的详细信息,请参阅 SetScrollRange 函数。

[in] bRedraw

类型: BOOL

指定是否重绘滚动条以反映新的滚动框位置。 如果此参数为 TRUE,则重绘滚动条。 如果为 FALSE,则不重绘滚动条。

返回值

类型: int

如果函数成功,则返回值为滚动框的上一位置。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

如果滚动条是通过对另一个函数的后续调用重绘的,则将 bRedraw 参数设置为 FALSE 会很有用。

由于指示滚动条位置的消息 (WM_HSCROLLWM_VSCROLL)限制为 16 位位置数据,因此仅依赖这些消息获取位置数据的应用程序对于 SetScrollPos 函数的 nPos 参数的实际最大值为 65,535。

但是,由于 SetScrollInfoSetScrollPosSetScrollRangeGetScrollInfoGetScrollPosGetScrollRange 函数支持 32 位滚动条位置数据,因此有一种方法可以绕过 WM_HSCROLLWM_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 (

另请参阅

GetScrollInfo

GetScrollPos

GetScrollRange

引用

SetScrollInfo

SetScrollRange