SCROLLINFO 结构
SCROLLINFO 结构SetScrollInfo 函数通过 SCROLLINFO 结构设置滚动条参数(或者 SBM_SETSCROLLINFO 消息),GetScrollInfo 函数也通过 SCROLLINFO 结构获得滚动条参数(或者 SBM_GETSCROLLINFO 消息)。
结构原型:
typedef struct tagSCROLLINFO {
UINT cbSize;
UINT fMask;
intnMin;
intnMax;
UINT nPage;
intnPos;
intnTrackPos;
} 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)所有,转载请注明来源。
WinSDK 关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,
SB_LINEUP
SB_LINEDOWN
每动一个 line 是多少呢?是像素为单位,还是其它? liyong2003 发表于 2015-1-2 09:48
关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,
{:9_240:}si.nPos+=1或si.nPos-=1;si.nPos 只是nMinnMax 之间的一个值,通过它的值就可以来设置滚动条的新位置。这么理解不知道对不对,我也是刚学到这。 si.nPos 是结构体中的变化,我是问系统会移多少,系统移多少是根据什么来决定的。 {:5_95:} liyong2003 发表于 2015-1-2 09:48
关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,
...... liyong2003 发表于 2015-1-2 09:48
关于小甲鱼 windows 编程第14课的问题
1. 为何要 si.cbSize = sizeof(si);
2. ScrollBar 中的消息,
每动一行就是+1 或者 -1
这个只是滚动条的一个数值而已
如果你的字符每行示高度是 10 那么你动一行就是 line(滚动条动了多少行)*每行字符的高度或者宽度
新手理解如果有误请指正
页:
[1]