ExtSliderWnd.h
上传用户:sesekoo
上传日期:2020-07-18
资源大小:21543k
文件大小:3k
源码类别:

界面编程

开发平台:

Visual C++

  1. // This is part of the Professional User Interface Suite library.
  2. // Copyright (C) 2001-2009 FOSS Software, Inc.
  3. // All rights reserved.
  4. //
  5. // http://www.prof-uis.com
  6. // mailto:support@prof-uis.com
  7. //
  8. // This source code can be used, modified and redistributed
  9. // under the terms of the license agreement that is included
  10. // in the Professional User Interface Suite package.
  11. //
  12. // Warranties and Disclaimers:
  13. // THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND
  14. // INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
  15. // FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
  16. // IN NO EVENT WILL FOSS SOFTWARE INC. BE LIABLE FOR ANY DIRECT,
  17. // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES,
  18. // INCLUDING DAMAGES FOR LOSS OF PROFITS, LOSS OR INACCURACY OF DATA,
  19. // INCURRED BY ANY PERSON FROM SUCH PERSON'S USAGE OF THIS SOFTWARE
  20. // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  21. #if (!defined __EXT_SLIDER_H)
  22. #define __EXT_SLIDER_H
  23. #if (!defined __EXT_MFC_NO_SLIDER)
  24. #if (!defined __EXT_MFC_DEF_H)
  25. #include <ExtMfcDef.h>
  26. #endif // __EXT_MFC_DEF_H
  27. #if _MSC_VER > 1000
  28. #pragma once
  29. #endif // _MSC_VER > 1000
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CExtSliderWnd window
  32. class __PROF_UIS_API CExtSliderWnd
  33. : public CSliderCtrl
  34. , public CExtPmBridge
  35. {
  36. // Construction
  37. public:
  38. DECLARE_DYNCREATE( CExtSliderWnd );
  39. DECLARE_CExtPmBridge_MEMBERS( CExtSliderWnd );
  40. CExtSliderWnd();
  41. // Attributes
  42. public:
  43. enum e_style_t
  44. {
  45. ES_SYSTEM = 0,
  46. ES_PROFUIS = 1,
  47. };
  48. protected:
  49. COLORREF m_clrBackground;
  50. COLORREF m_clrBackgroundPrev;
  51. CBrush m_brBack;
  52. e_style_t m_eStyle;
  53. // Operations
  54. public:
  55. void SetStyle( e_style_t eStyle );
  56. e_style_t GetStyle() const;
  57. COLORREF SetBkColor( COLORREF clrBk );
  58. COLORREF GetBkColor() const;
  59. void UpdateSliderWnd();
  60. // Overrides
  61. // ClassWizard generated virtual function overrides
  62. //{{AFX_VIRTUAL(CExtSliderWnd)
  63. protected:
  64. virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);
  65. //}}AFX_VIRTUAL
  66. // Implementation
  67. public:
  68. virtual ~CExtSliderWnd();
  69. protected:
  70. virtual bool OnSliderDrawChannel(
  71. CDC & dc,
  72. const CRect & rcChannel,
  73. UINT uItemState
  74. );
  75. virtual bool OnSliderDrawThumb(
  76. CDC & dc,
  77. const CRect & rcThumb,
  78. UINT uItemState
  79. );
  80. virtual bool OnSliderDrawTics(
  81. CDC & dc,
  82. const CRect & rcClient,
  83. UINT uItemState
  84. );
  85. virtual void PmBridge_OnPaintManagerChanged(
  86. CExtPaintManager * pGlobalPM
  87. );
  88. // Generated message map functions
  89. protected:
  90. //{{AFX_MSG(CExtSliderWnd)
  91. afx_msg void OnCustomdraw(NMHDR* pNMHDR, LRESULT* pResult);
  92. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  93. afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
  94. //}}AFX_MSG
  95. afx_msg void OnSettingChange(UINT uFlags, __EXT_MFC_SAFE_LPCTSTR lpszSection);
  96. afx_msg void OnSysColorChange();
  97. afx_msg LRESULT OnDisplayChange( WPARAM wParam, LPARAM lParam );
  98. afx_msg LRESULT OnThemeChanged( WPARAM wParam, LPARAM lParam );
  99. DECLARE_MESSAGE_MAP()
  100. };
  101. /////////////////////////////////////////////////////////////////////////////
  102. //{{AFX_INSERT_LOCATION}}
  103. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  104. #endif // (!defined __EXT_MFC_NO_SLIDER)
  105. #endif // !defined(__EXT_SLIDER_H)