RTScrollBar.h
上传用户:qhonly
上传日期:2013-06-10
资源大小:487k
文件大小:3k
源码类别:

界面编程

开发平台:

Visual C++

  1. #pragma once
  2. // CRTScrollBar
  3. class CRTScrollBar : public CScrollBar
  4. {
  5. DECLARE_DYNAMIC(CRTScrollBar)
  6. public:
  7. CRTScrollBar();
  8. virtual ~CRTScrollBar();
  9. typedef enum _ScrollBarSizeArea
  10. {
  11. AreaNone = 0,
  12. AreaTop = 1,
  13. AreaBottom = 2,
  14. AreaLeft = 1,
  15. AreaRight = 2
  16. }ScrollBarSizeArea;
  17. void DrawHorizontal(CDC* pDC);
  18. void DrawVertical(CDC* pDC);
  19. static void EnableSkin(BOOL IsEnable = TRUE);
  20. static void SetHorizontalBitmap(CBitmap* pHorizontal[],UINT DrawMode[]);
  21. static void SetVerticalBitmap(CBitmap* pVertical[],UINT DrawMode[]);
  22. static void SetVerticalUpArrowBitmap(CBitmap* pVerticalUpArrowBitmap[],UINT DrawMode[]);
  23. static void SetVerticalDownArrowBitmap(CBitmap* pVerticalDownArrowBitmap[],UINT DrawMode[]);
  24. static void SetHorizontalLeftArrowBitmap(CBitmap* pHorizontalLeftArrowBitmap[],UINT DrawMode[]);
  25. static void SetHorizontalRightArrowBitmap(CBitmap* pHorizontalRightArrowBitmap[],UINT DrawMode[]);
  26. void SetSizeArea(ScrollBarSizeArea Area = CRTScrollBar::AreaNone);
  27. protected:
  28. CPoint m_MouseDownPoint;
  29. CRect m_ThumbRect;
  30. CRect m_LeftArrowRect;
  31. CRect m_RightArrowRect;
  32. CRect m_TopArrowRect;
  33. CRect m_BottomArrowRect;
  34. CRect m_AreaRect;
  35. CRect m_DragThumbRect;
  36. BOOL m_bMouseDownArrowForback;
  37. BOOL m_bMouseDownArrowForwad;
  38. int  m_nThumbStart;
  39. double m_dbThumbInterval;
  40. double m_dbThumbRemainder;
  41. int  m_nThumbTrackPos;
  42. BOOL m_bDragging;
  43. BOOL m_bMouseDown;
  44. ScrollBarSizeArea  m_SizeArea;
  45. int  m_MouseDownTime;
  46. static BOOL   m_IsEnableSkin;
  47. friend class CRTInternalScrollBar;
  48. static CBitmap* m_ScrollBarVerticalBitmap[5];
  49. static CBitmap* m_ScrollBarHorizontalBitmap[5];
  50. static UINT     m_ScrollBarVerticalBitmapDrawMode[5];
  51. static UINT     m_ScrollBarHorizontalBitmapDrawMode[5];
  52. static CBitmap* m_ScrollBarUpArrowBitmap[5];
  53. static CBitmap* m_ScrollBarLeftArrowBitmap[5];
  54. static CBitmap* m_ScrollBarDownArrowBitmap[5];
  55. static CBitmap* m_ScrollBarRightArrowBitmap[5];
  56. static UINT     m_ScrollBarUpArrowBitmapDrawMode[5];
  57. static UINT     m_ScrollBarLeftArrowBitmapDrawMode[5];
  58. static UINT     m_ScrollBarDownArrowBitmapDrawMode[5];
  59. static UINT     m_ScrollBarRightArrowBitmapDrawMode[5];
  60. protected:
  61. DECLARE_MESSAGE_MAP()
  62. public:
  63. afx_msg void OnPaint();
  64. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  65. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  66. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  67. afx_msg void OnTimer(UINT nIDEvent);
  68. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  69. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  70. void SetRange(int nmin, int nmax,BOOL bRedraw = TRUE);
  71. void SetPos(int pos, BOOL redraw = TRUE);
  72. };