程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Scroll Bar

Scroll Bar

編輯:關於C語言

 

Scroll Bar一般不會單獨使用,因為SpinCtrl可以取代滾動條的一部分作用,但是如果你需要自己生成派生窗口,滾動條還是會派上一些用場。創建一個滾動條可以使用成員函數::
BOOL CEdit::Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
其中dwStyle將指明該窗口的風格,除了子窗口常用的風格WS_CHILD,WS_VISIBLE外,你可以針對滾動條指明專門的風格。

  • SBS_VERT 風格將創建一個垂直的滾動條。
  • SBS_HORZ 風格將創建一個水平的滾動條。

在創建滾動條後需要調用void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE )設置滾動范圍,
int GetScrollPos( )/int SetScrollPos( )用來得到和設置當前滾動條的位置。

void ShowScrollBar( BOOL bShow = TRUE );用來顯示/隱藏滾動條。

BOOL EnableScrollBar( UINT nArrowFlags = ESB_ENABLE_BOTH )用來設置滾動條上箭頭是否為允許狀態。nArrowFlags可取以下值:

  • ESB_ENABLE_BOTH 兩個箭頭都為允許狀態
  • ESB_DISABLE_LTUP 上/左箭頭為禁止狀態
  • ESB_DISABLE_RTDN 下/右箭頭為禁止狀態
  • ESB_DISABLE_BOTH 兩個箭頭都為禁止狀態

如果需要在滾動條位置被改變時得到通知,需要在父窗口中定義對消息WM_VSCROLL/WM_HSCROLL的映射。方法為在父窗口類中重載
afx_msg void OnVScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )/afx_msg void OnHScroll( UINT nSBCode, UINT nPos, CScrollBar* pScrollBar )
所使用的消息映射宏為:ON_WM_VSCROLL( ),ON_WM_HSCROLL( ),在映射宏中不需要指明滾動條的ID,因為所有滾動條的滾動消息都由同樣的函數處理。在OnHScroll/OnVScroll的第三個參數會指明當前滾動條的指針。第一個參數表示滾動條上發生的動作,可取以下值:

  • SB_TOP/SB_BOTTOM 已滾動到頂/底部
  • SB_LINEUP/SB_LINEDOWN 向上/下滾動一行
  • SB_PAGEDOWN/SB_PAGEUP 向上/下滾動一頁
  • SB_THUMBPOSITION/SB_THUMBTRACK 滾動條拖動到某一位置,參數nPos指明當前位置(參數nPos在其它的情況下是無效的)
  • SB_ENDSCROLL 滾動條拖動完成(用戶松開鼠標)

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved