C++ 中滚动条的滚动问题
SCROLLINFOscrollinfo; GetScrollInfo(SB_HORZ,&scrollinfo,SIF_ALL); switch(nSBCode) { caseSB_LINERIGHT: if(scrollinfo.nPos<scrollinfo.nMax){ scrollinfo.nPos+=10; SetScrollInfo(SB_HORZ,&scrollinfo); ScrollWindow(-10,0);} break; }
使用GetScrollInfo得到滚动信息将信息保存于SCROLLINFO类的数据中
然后根据nSBCode来判断是哪个滚动条的哪个动作,做了调整
下面列出滚动的相关函数
afx_msgvoidOnHScroll( UINTnSBCode, UINTnPos, 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。
指针可能是瞬态的,不应存储以供将来使用。
以上所述就是本文的全部内容了,希望大家能够喜欢。