setScrollRange 函数 (winuser.h)

SetScrollRange 函数设置指定滚动条的最小和最大滚动框位置。

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

语法

BOOL SetScrollRange(
  [in] HWND hWnd,
  [in] int  nBar,
  [in] int  nMinPos,
  [in] int  nMaxPos,
  [in] BOOL bRedraw
);

参数

[in] hWnd

类型: HWND

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

[in] nBar

类型: int

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

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

[in] nMinPos

类型: int

指定最小滚动位置。

[in] nMaxPos

类型: int

指定最大滚动位置。

[in] bRedraw

类型: BOOL

指定是否应重新绘制滚动条以反映更改。 如果此参数为 TRUE,则重新绘制滚动条。 如果为 FALSE,则不重绘滚动条。

返回值

类型: BOOL

如果该函数成功,则返回值为非零值。

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

注解

可以通过将 nMinPosnMaxPos 设置为相同的值,使用 SetScrollRange 隐藏滚动条。 应用程序不应在处理滚动条消息时调用 SetScrollRange 函数来隐藏滚动条。 新应用程序应使用 ShowScrollBar 函数来隐藏滚动条。

如果调用 SetScrollRange 后立即调用 SetScrollPos 函数,则 SetScrollPos 中的 bRedraw 参数必须为零,以防止滚动条被绘制两次。

标准滚动条的默认范围为 0 到 100。 滚动条控件的默认范围为空, (nMinPosnMaxPos 参数值为零) 。 nMinPosnMaxPos 参数指定的值之间的差异不得大于 MAXLONG 的值。

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

但是,由于 SetScrollInfoSetScrollPosSetScrollRangeGetScrollInfoGetScrollPosGetScrollRange 函数支持 32 位滚动条位置数据,因此有一种方法可以绕过 WM_HSCROLLWM_VSCROLL 消息的 16 位屏障。 有关技术的说明,请参阅 GetScrollInfo

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

示例

有关示例,请参阅 使用 Owner-Display 剪贴板格式

要求

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

SetScrollPos

ShowScrollBar