鱼C论坛

 找回密码
 立即注册
查看: 7333|回复: 2

[API档案] SetScrollRange

[复制链接]
发表于 2014-7-31 17:58:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
函数功能:

SetScrollRange 函数设置所指定滚动条范围的最小值和最大值。

注意:SetScrollRange 函数提供了向后的兼容性。但新的应用程序应该提倡使用 SetScrollInfo 函数代替。


API 函数原型:

注释:_In_ 说明该参数是输入的,_opt_ 说明该参数是可选参数。
BOOL SetScrollRange(
  _In_  HWND hWnd,
  _In_  int nBar,
  _In_  int nMinPos,
  _In_  int nMaxPos,
  _In_  BOOL bRedraw
);

参数解析:

参数 含义
hWnd 1. 滚动条控件的句柄或带有标准滚动条窗体的句柄
2. 由 nBar 参数的值确定
nBar 指定将要设置哪类滚动条的参数:
1. SB_CTL:设置滚动条控件的范围,要求参数 hwnd 必须是滚动条控件的句柄
2. SB_HORZ:设置窗体的标准水平滚动条的范围
3. SB_VERT:设置窗体的标准垂直滚动条的范围
nMinPos 指定滚动位置的最小值
nMaxPos 指定滚动位置的最大值
bRedraw 指定滚动条是否被重画以反映变化(如果这个参数为 TRUE,滚动条将被重画;如果为 FALSE 则不被重画)


返回值:

1. 如果函数调用成功,返回值为非 0;

2. 如果函数调用失败,返回值为 0。


备注:

1. 将 SetScrollRange 函数中的 nMinPos 和 nMaxPos 参数设置为一样的值,可以达到隐藏滚动条的目的。但在处理滚动条消息时,应用程序不应该调用 SetScrollRange 函数来隐藏滚动条。新的应用程序应该调用 ShowScrollBar 函数来隐藏滚动条。

2. 如果调用 SetScrollPos 函数之后马上调用 SetScrollRange 函数,则 SetScrollPos 函数中的 bRedraw 参数一定要设置为零值(FALSE),以防止滚动条被画两次。

3. 标准滚动条的缺省范围是 0 到 100。滚动条控件的缺省值为 NULL(参数 nMinPos 和 nMaxPos 的值均为零)。两个范围值之间的不同之处在于由参数 nMinPos 和 nMaxPos 指定,不过不能超过 MAXLONG 定义的大小。

4. 因为说明滚动条位置的消息 WM_HSCROLL 和 WM_VSCROLL 是 16 位数据,所以那些只依赖于说明位置数据消息的应用程序在 SetScrollRange 函数的参数 nMaxPos 中有一个实际最大值 65,535。但是,因为 SetScrolllnfo,SetScrollPos, SetScrollRange,GetScrolllnfo,GetScrollPos 和 GetScrollRange 函数都支持 32 位的滚动条位置数据,所以有一个解决 16 位 WM_HSCROLL 和 WM_VSCROLL 消息阻碍的途径,请参见函数 GetScrolllnfo 的有关技术说明。

5. 如果参数 nBar 设置为 SB_CTL 并且参数 hWnd 所标识的不是一个标准的滚动条控件。系统将发送一个 SBM_SETRANGE 消息到窗体用以设置滚动条消息。这将允许 SetScrollRange 函数操作一个定制的伪滚动条控件。如果窗体没有处理 SBM_SETRANGE 消息,SetScrollRange 函数将调用失败。

【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-10-27 22:37:01 | 显示全部楼层
沙发........
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-3-19 22:15:59 | 显示全部楼层
板凳
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 00:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表