您的位置:首页 > 编程语言 > C语言/C++

C++ 关于滚动条的滚动问题

2015-06-17 09:26 267 查看
SCROLLINFO scrollinfo;
GetScrollInfo(SB_HORZ, &scrollinfo, SIF_ALL);
switch (nSBCode)
{
case SB_LINERIGHT:
if (scrollinfo.nPos < scrollinfo.nMax){
scrollinfo.nPos += 10;
SetScrollInfo(SB_HORZ, &scrollinfo);
ScrollWindow(-10, 0);}
break;
}

使用 GetScrollInfo 得到滚动信息 将信息保存于 SCROLLINFO 类的数据中

然后根据 nSBCode 来判断是哪个滚动条的哪个动作,做了调整

下面列出滚动的相关函数

afx_msg void OnHScroll(
UINT nSBCode,
UINT nPos,
CScrollBar* pScrollBar
);

各个参数的意义:


nSBCode
指定指示用户滚动请求的滚动条代码。 此参数可以是下列值之一:
SB_LEFT 滚动到最左侧。
SB_ENDSCROLL 结束滚动。
SB_LINELEFT 滚动。
SB_LINERIGHT 滚动权限。
SB_PAGELEFT 滚动一页。
SB_PAGERIGHT 滚动一页权限。
SB_RIGHT 滚动到最右边。
SB_THUMBPOSITION 为绝对位置的滚动。 当前位置由 nPos 参数指定。
SB_THUMBTRACK 拖动到指定位置的滚动框。 当前位置由 nPos 参数指定。
nPos
如果滚动条代码是 SB_THUMBPOSITION 或 SB_THUMBTRACK,指定滚动框位置;否则,未使用。 基于初始滚动大小,nPos 可以为负的,因此如果需要,转换到 int。
pScrollBar
如果滚动消息来自滚动条控件,其中包含指向该控件。 //如果是手动添加的滚动控件
如果用户单击窗口滚动条,此参数是 NULL。
指针可能是瞬态的,不应存储以供将来使用。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: