鱼C论坛

 找回密码
 立即注册
查看: 12438|回复: 6

[API档案] SCROLLINFO 结构

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

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

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

x
SCROLLINFO 结构

SetScrollInfo 函数通过 SCROLLINFO 结构设置滚动条参数(或者 SBM_SETSCROLLINFO 消息),GetScrollInfo 函数也通过 SCROLLINFO 结构获得滚动条参数(或者 SBM_GETSCROLLINFO 消息)。


结构原型:
typedef struct tagSCROLLINFO {
  UINT cbSize;
  UINT fMask;
  int  nMin;
  int  nMax;
  UINT nPage;
  int  nPos;
  int  nTrackPos;
} SCROLLINFO, *LPCSCROLLINFO;

成员解析:

成员 含义
cbSize 1. 该结构的大小(以字节为单位)
2. 通常使用 sizeof(SCROLLINFO) 获得
fMask 指定被设置或获取的滚动条参数,该参数可以由下列标志组成:
1. SIF_ALL:相当于 SIF_PAGE | SIF_POS | SIF_RANGE | SIF_TRACKPOS
2. SIF_DISABLENOSCROLL:如果当前窗口不需要滚动条时,禁用滚动条取代隐藏滚动条(该标志只用于 SetScrollInfo 函数中)
3. SIF_PAGE:指出需要设置或获取页面的大小到 nPage 中(如果不希望滑块大小发生变化,则不要设置此标志)
4. SIF_POS:指出需要设置或获取滚动条滑块的位置到 nPos 中
5. SIF_RANGE:指出需要在 nMin 和 nMax 设置或获取范围的最小值和最大值
6. SIF_TRACKPOS:指出当 WM_VSCROLL 或 WM_HSCROLL 消息的通知码为 SB_THUMBTRACK 或 SB_THUMBPOSITION 时,返回当前滑块的位置到 nTrackPos(该标志只用在 GetScrollInfo 函数中,并且该值为一个 32 位整数)
nMin 滚动条范围的最小值
nMax 滚动条范围的最大值
nPage 页面的大小,滚动条通过这个值来动态确定滑块的大小
nPos 滑块的位置
nTrackPos 当前滑块的位置

如在使用上有任何不同,可以参考小甲鱼的《Windows程序设计(SDK)》第 14 讲:滚动条3


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

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

使用道具 举报

发表于 2015-1-2 09:48:51 | 显示全部楼层
关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,
SB_LINEUP
SB_LINEDOWN
每动一个 line 是多少呢?是像素为单位,还是其它?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-2 10:35:17 | 显示全部楼层
liyong2003 发表于 2015-1-2 09:48
关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,

  si.nPos  +=1  或  si.nPos  -=1  ;si.nPos 只是nMin  nMax 之间的一个值,通过它的值就可以来设置滚动条的新位置。这么理解不知道对不对,我也是刚学到这。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-1-2 14:18:16 | 显示全部楼层
si.nPos 是结构体中的变化,我是问系统会移多少,系统移多少是根据什么来决定的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-10-24 11:36:09 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-12-18 10:20:40 | 显示全部楼层
liyong2003 发表于 2015-1-2 09:48
关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,

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

使用道具 举报

发表于 2017-1-31 13:47:09 | 显示全部楼层
liyong2003 发表于 2015-1-2 09:48
关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,

每动一行就是+1 或者 -1
这个只是滚动条的一个数值而已
如果你的字符每行示高度是 10 那么你动一行就是   line(滚动条动了多少行)*每行字符的高度或者宽度
新手理解如果有误请指正
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 11:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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