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。
指針可能是瞬態的,不應存儲以供將來使用。