setScrollRange 函数 (winuser.h)
SetScrollRange 函数设置指定滚动条的最小和最大滚动框位置。
语法
BOOL SetScrollRange(
[in] HWND hWnd,
[in] int nBar,
[in] int nMinPos,
[in] int nMaxPos,
[in] BOOL bRedraw
);
参数
[in] hWnd
类型: HWND
滚动条控件或具有标准滚动条的窗口的句柄,具体取决于 nBar 参数的值。
[in] nBar
类型: int
指定要设置的滚动条。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
设置滚动条控件的范围。 hwnd 参数必须是滚动条控件的句柄。 |
|
设置窗口的标准水平滚动条的范围。 |
|
设置窗口的标准垂直滚动条的范围。 |
[in] nMinPos
类型: int
指定最小滚动位置。
[in] nMaxPos
类型: int
指定最大滚动位置。
[in] bRedraw
类型: BOOL
指定是否应重新绘制滚动条以反映更改。 如果此参数为 TRUE,则重新绘制滚动条。 如果为 FALSE,则不重绘滚动条。
返回值
类型: BOOL
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。
注解
可以通过将 nMinPos 和 nMaxPos 设置为相同的值,使用 SetScrollRange 隐藏滚动条。 应用程序不应在处理滚动条消息时调用 SetScrollRange 函数来隐藏滚动条。 新应用程序应使用 ShowScrollBar 函数来隐藏滚动条。
如果调用 SetScrollRange 后立即调用 SetScrollPos 函数,则 SetScrollPos 中的 bRedraw 参数必须为零,以防止滚动条被绘制两次。
标准滚动条的默认范围为 0 到 100。 滚动条控件的默认范围为空, (nMinPos 和 nMaxPos 参数值为零) 。 nMinPos 和 nMaxPos 参数指定的值之间的差异不得大于 MAXLONG 的值。
由于指示滚动条位置的消息 (WM_HSCROLL 和 WM_VSCROLL)限制为 16 位位置数据,因此仅依赖这些消息获取位置数据的应用程序对于 SetScrollRange 函数的 nMaxPos 参数的实际最大值为 65,535。
但是,由于 SetScrollInfo、 SetScrollPos、 SetScrollRange、 GetScrollInfo、 GetScrollPos 和 GetScrollRange 函数支持 32 位滚动条位置数据,因此有一种方法可以绕过 WM_HSCROLL 和 WM_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 ( |
另请参阅
引用