鱼C论坛

 找回密码
 立即注册
查看: 6516|回复: 1

[API档案] GetScrollInfo

[复制链接]
发表于 2014-8-7 16:34:54 | 显示全部楼层 |阅读模式

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

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

x
函数功能:

GetScrollInfo 函数用于获取滚动条的参数,其中包括:滚动范围的最小值和最大值,页面的大小,以及滑块的位置。


API 函数原型:
BOOL GetScrollInfo(
  _In_     HWND hwnd,
  _In_     int fnBar,
  _Inout_  LPSCROLLINFO lpsi
);

参数解析:

参数 含义
hwnd 1. 滚动条控件的句柄或带有标准滚动条窗体的句柄
2. 由 fnBar 参数的值确定
fnBar 指定将要设置哪类滚动条的参数:
1. SB_CTL:设置滚动条控件的范围,要求参数 hwnd 必须是滚动条控件的句柄
2. SB_HORZ:设置窗体的标准水平滚动条的范围
3. SB_VERT:设置窗体的标准垂直滚动条的范围
lpsi 1. 指向 SCROLLINFO 结构
2. 在调用 GetScrollInfo 函数前,需先设置 SCROLLINFO 结构中 cbSize 成员以标识结构大小,设置 fMask 成员以说明待获取的滚动条参数
3. 函数返回前,GetScrollInfo 函数拷贝指定的参数给 SCROLLINFO 结构中适当的成员


返回值:

1. 如果函数成功获取滚动条的参数,则返回值是非 0;

2. 如果函数没有获取滚动条的参数,则返回值是 0。


备注:

1. 尽管滚动条消息 WM_HSCROLL 和 WM_VSCROLL 可以通过 HIWORD(wParam) 取得滚动条的位置(当 LOWORD(wParam) 通知码为 SB_THUMBPOSITION 和 SB_THUMBTRACK 的时候),但得到是 16 位的滚动条位置。如果想要得到 32 位的滚动条数据,可以使用 GetScrollInfo 函数。

2. 为了在 WM_HSCROLL 或 WM_VSCROLL 的 SB_THUMBTRACK 通知码中获得滚动条滑块的 32 位的位置,可以通过调用 GetScrollInfo 函数并设置 SCROLLINFO 结构 fMask 成员的值为 SIF_TRACKPOS 实现。GetScrollInfo 函数将滚动条滑块的位置存放在 SCROLLINFO 结构的 nTrackPos 成员中。这将使得用户在移动滑块时你可以及时获得滑块的位置。

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

示例:
SCROLLINFO si;
case WM_HSCROLL:
    switch(LOWORD(wparam)) {
        case SB_THUMBTRACK:
          // Initialize SCROLLINFO structure
 
            ZeroMemory(&si, sizeof(si));
            si.cbSize = sizeof(si);
            si.fMask = SIF_TRACKPOS;
 
          // Call GetScrollInfo to get current tracking 
          //    position in si.nTrackPos
 
            if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
                return 1; // GetScrollInfo failed
            break;
        .
        .
        .
    }
如在使用上有任何不同,可以参考小甲鱼的《Windows程序设计(SDK)》第 14 讲:滚动条3



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

使用道具 举报

发表于 2015-1-1 19:53:36 | 显示全部楼层
小甲鱼的这个例子来源我找到了
http://msdn.microsoft.com/en-us/library/windows/desktop/bb787583%28v=vs.85%29.aspx
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 23:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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