C++ 關於滾動條的滾動問題


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM