SkinScrollBar.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. #ifndef SCROLLBAR_HEAD_FILE
  2. #define SCROLLBAR_HEAD_FILE
  3. #pragma once
  4. #include "SkinUI.h"
  5. #define UISTATE_FOCUSED 0x00000001
  6. #define UISTATE_SELECTED 0x00000002
  7. #define UISTATE_DISABLED 0x00000004
  8. #define UISTATE_HOT 0x00000008
  9. #define UISTATE_PUSHED 0x00000010
  10. #define UISTATE_READONLY 0x00000020
  11. #define UISTATE_CAPTURED 0x00000040
  12. //////////////////////////////////////////////////////////////////////////
  13. class SKINUI_CLASS CSkinScrollBar : public CScrollBar
  14. {
  15. protected:
  16. HWND m_hOwnerWnd;
  17. UINT m_nCtrlId;
  18. CRect m_rcScrollBar;
  19. BOOL m_bHorizontal;
  20. BOOL m_bVisible;
  21. BOOL m_bEnabled;
  22. int m_nRange;
  23. int m_nScrollPos;
  24. int m_nLineSize;
  25. POINT m_ptLastMouse;
  26. int m_nLastScrollPos;
  27. int m_nLastScrollOffset;
  28. int m_nScrollRepeatDelay;
  29. DWORD m_dwUseTimerId, m_dwTimerId;
  30. BOOL m_bMouseHover;
  31. BOOL m_bCaptured;
  32. BOOL m_bMouseTracking;
  33. CImageEx * m_lpBgImgN;
  34. CImageEx * m_lpBgImgH;
  35. CImageEx * m_lpBgImgP;
  36. CImageEx * m_lpBgImgD;
  37. BOOL m_bShowLeftUpBtn;
  38. CRect m_rcLeftUpBtn;
  39. DWORD m_dwLeftUpBtnState;
  40. CImageEx * m_lpLeftUpBtnImgN;
  41. CImageEx * m_lpLeftUpBtnImgH;
  42. CImageEx * m_lpLeftUpBtnImgP;
  43. CImageEx * m_lpLeftUpBtnImgD;
  44. BOOL m_bShowRightDownBtn;
  45. CRect m_rcRightDownBtn;
  46. DWORD m_dwRightDownBtnState;
  47. CImageEx * m_lpRightDownBtnImgN;
  48. CImageEx * m_lpRightDownBtnImgH;
  49. CImageEx * m_lpRightDownBtnImgP;
  50. CImageEx * m_lpRightDownBtnImgD;
  51. CRect m_rcThumb;
  52. DWORD m_dwThumbState;
  53. CImageEx * m_lpThumbImgN;
  54. CImageEx * m_lpThumbImgH;
  55. CImageEx * m_lpThumbImgP;
  56. CImageEx * m_lpThumbImgD;
  57. CImageEx * m_lpRailImgN;
  58. CImageEx * m_lpRailImgH;
  59. CImageEx * m_lpRailImgP;
  60. CImageEx * m_lpRailImgD;
  61. public:
  62. CSkinScrollBar();
  63. virtual ~CSkinScrollBar();
  64. public:
  65. void DrawArrow(UINT uArrow,int nState);
  66. void SetBitmap(HBITMAP hBmp);
  67. BOOL SetBackImage(LPCTSTR lpszFileName);
  68. BOOL IsVertical();
  69. protected:
  70. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  71. void DrawThumb(CDC *pDestDC, RECT *pDestRect, CDC *pSourDC, RECT *pSourRect);
  72. void TileBlt(CDC *pDestDC,RECT *pDestRect,CDC *pSourDC,RECT *pSourRect);
  73. RECT GetRect(UINT uSBCode);
  74. RECT GetImageRect(UINT uSBCode,int nState=0);
  75. UINT HitTest(CPoint pt);
  76. afx_msg void OnSize(UINT nType, int cx, int cy);
  77. afx_msg void OnPaint();
  78. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  79. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  80. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  81. afx_msg void OnTimer(UINT nIDEvent);
  82. afx_msg LRESULT OnMouseLeave(WPARAM wparam, LPARAM lparam);
  83. protected:
  84. DECLARE_MESSAGE_MAP()
  85. public:
  86. afx_msg void OnDestroy();
  87. };
  88. #endif