鱼C论坛

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

[API档案] GetScrollInfo

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

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

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

x
函数功能:

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


API 函数原型:

  1. BOOL GetScrollInfo(
  2.   _In_     HWND hwnd,
  3.   _In_     int fnBar,
  4.   _Inout_  LPSCROLLINFO lpsi
  5. );
复制代码


参数解析:

参数 含义
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)所有,转载请注明来源。

示例:

  1. SCROLLINFO si;
  2. case WM_HSCROLL:
  3.     switch(LOWORD(wparam)) {
  4.         case SB_THUMBTRACK:
  5.           // Initialize SCROLLINFO structure

  6.             ZeroMemory(&si, sizeof(si));
  7.             si.cbSize = sizeof(si);
  8.             si.fMask = SIF_TRACKPOS;

  9.           // Call GetScrollInfo to get current tracking
  10.           //    position in si.nTrackPos

  11.             if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
  12.                 return 1; // GetScrollInfo failed
  13.             break;
  14.         .
  15.         .
  16.         .
  17.     }
复制代码

如在使用上有任何不同,可以参考小甲鱼的《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-4-19 14:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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