| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- #pragma once
- // Flags used for controlling the paint
- #define UISTATE_FOCUSED 0x00000001
- #define UISTATE_SELECTED 0x00000002
- #define UISTATE_DISABLED 0x00000004
- #define UISTATE_HOT 0x00000008
- #define UISTATE_PUSHED 0x00000010
- #define UISTATE_READONLY 0x00000020
- #define UISTATE_CAPTURED 0x00000040
- // 滚动块大小/滚动条长度 ≈ 页面大小/滚动条范围 ≈ 一屏显示的文档量/文档总量
- class CScrollBarEx : public ISkinControl
- {
- public:
- CScrollBarEx(void);
- ~CScrollBarEx(void);
- BOOL SetBgNormalPic(LPCTSTR lpszFileName);
- BOOL SetBgHotPic(LPCTSTR lpszFileName);
- BOOL SetBgPushedPic(LPCTSTR lpszFileName);
- BOOL SetBgDisabledPic(LPCTSTR lpszFileName);
- BOOL GetShowLeftUpBtn();
- void SetShowLeftUpBtn(BOOL bShow);
- BOOL SetLeftUpBtnNormalPic(LPCTSTR lpszFileName);
- BOOL SetLeftUpBtnHotPic(LPCTSTR lpszFileName);
- BOOL SetLeftUpBtnPushedPic(LPCTSTR lpszFileName);
- BOOL SetLeftUpBtnDisabledPic(LPCTSTR lpszFileName);
- BOOL GetShowRightDownBtn();
- void SetShowRightDownBtn(BOOL bShow);
- BOOL SetRightDownBtnNormalPic(LPCTSTR lpszFileName);
- BOOL SetRightDownBtnHotPic(LPCTSTR lpszFileName);
- BOOL SetRightDownBtnPushedPic(LPCTSTR lpszFileName);
- BOOL SetRightDownBtnDisabledPic(LPCTSTR lpszFileName);
- BOOL SetThumbNormalPic(LPCTSTR lpszFileName, RECT * lpNinePart = NULL);
- BOOL SetThumbHotPic(LPCTSTR lpszFileName, RECT * lpNinePart = NULL);
- BOOL SetThumbPushedPic(LPCTSTR lpszFileName, RECT * lpNinePart = NULL);
- BOOL SetThumbDisabledPic(LPCTSTR lpszFileName, RECT * lpNinePart = NULL);
- BOOL SetRailNormalPic(LPCTSTR lpszFileName);
- BOOL SetRailHotPic(LPCTSTR lpszFileName);
- BOOL SetRailPushedPic(LPCTSTR lpszFileName);
- BOOL SetRailDisabledPic(LPCTSTR lpszFileName);
- BOOL Create(HWND hOwnerWnd, UINT nCtrlId, RECT * lpRect,DWORD dwUseTimerId, BOOL bHorizontal = TRUE, BOOL bVisible = TRUE);
- BOOL Destroy();
- void SetOwnerWnd(HWND hWnd);
- HWND GetOwnerWnd();
- void SetCtrlId(UINT nCtrlId);
- UINT GetCtrlId();
- void SetRect(RECT * lpRect);
- void GetRect(RECT * lpRect);
- BOOL IsHorizontal();
- void SetHorizontal(BOOL bHorizontal = TRUE);
- BOOL IsVisible();
- void SetVisible(BOOL bVisible = TRUE);
- BOOL IsEnabled();
- void SetEnabled(BOOL bEnable = TRUE);
- int GetScrollRange();
- void SetScrollRange(int nRange);
- int GetScrollPos();
- void SetScrollPos(int nPos);
- int GetLineSize();
- void SetLineSize(int nSize);
- LRESULT WindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam);
- void OnPaint(CDC*pDC);
- void OnLButtonDown(UINT nFlags, CPoint point);
- void OnLButtonUp(UINT nFlags, CPoint point);
- void OnMouseMove(UINT nFlags, CPoint point);
- void OnMouseLeave();
- void OnTimer(UINT_PTR nIDEvent);
- private:
- void DrawBg(CDC*pDC);
- void DrawLeftUpBtn(CDC*pDC);
- void DrawRightDownBtn(CDC*pDC);
- void DrawThumb(CDC*pDC);
- void DrawRail(CDC*pDC);
- BOOL Invalidate(BOOL bErase = TRUE);
- void CalcScrollBarData();
- HWND SetCapture();
- BOOL ReleaseCapture();
- BOOL IsCaptured();
- BOOL StartTrackMouseLeave();
- BOOL IsMouseTracking();
- protected:
- HWND m_hOwnerWnd;
- UINT m_nCtrlId;
- CRect m_rcScrollBar;
- BOOL m_bHorizontal;
- BOOL m_bVisible;
- BOOL m_bEnabled;
- int m_nRange;
- int m_nScrollPos;
- int m_nLineSize;
- POINT m_ptLastMouse;
- int m_nLastScrollPos;
- int m_nLastScrollOffset;
- int m_nScrollRepeatDelay;
- DWORD m_dwUseTimerId, m_dwTimerId;
- BOOL m_bMouseHover;
- BOOL m_bCaptured;
- BOOL m_bMouseTracking;
- CImageEx * m_lpBgImgN;
- CImageEx * m_lpBgImgH;
- CImageEx * m_lpBgImgP;
- CImageEx * m_lpBgImgD;
- BOOL m_bShowLeftUpBtn;
- CRect m_rcLeftUpBtn;
- DWORD m_dwLeftUpBtnState;
- CImageEx * m_lpLeftUpBtnImgN;
- CImageEx * m_lpLeftUpBtnImgH;
- CImageEx * m_lpLeftUpBtnImgP;
- CImageEx * m_lpLeftUpBtnImgD;
- BOOL m_bShowRightDownBtn;
- CRect m_rcRightDownBtn;
- DWORD m_dwRightDownBtnState;
- CImageEx * m_lpRightDownBtnImgN;
- CImageEx * m_lpRightDownBtnImgH;
- CImageEx * m_lpRightDownBtnImgP;
- CImageEx * m_lpRightDownBtnImgD;
- CRect m_rcThumb;
- DWORD m_dwThumbState;
- CImageEx * m_lpThumbImgN;
- CImageEx * m_lpThumbImgH;
- CImageEx * m_lpThumbImgP;
- CImageEx * m_lpThumbImgD;
- CImageEx * m_lpRailImgN;
- CImageEx * m_lpRailImgH;
- CImageEx * m_lpRailImgP;
- CImageEx * m_lpRailImgD;
- };
|