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。
指针可能是瞬态的,不应存储以供将来使用。
以上所述就是本文的全部内容了,希望大家能够喜欢。
总结以上是内存溢出为你收集整理的C++ 中滚动条的滚动问题全部内容,希望文章能够帮你解决C++ 中滚动条的滚动问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)