XTPControlSlider.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:7k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPControlSlider.h : interface for the CXTPControlSlider class.
  2. //
  3. // This file is a part of the XTREME COMMANDBARS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #if !defined(__XTPCONTOLSLIDER_H__)
  21. #define __XTPCONTOLSLIDER_H__
  22. #if _MSC_VER > 1000
  23. #pragma once
  24. #endif // _MSC_VER > 1000
  25. #include "XTPControl.h"
  26. class CXTPControlSlider;
  27. //===========================================================================
  28. // Summary:
  29. //     Inplace slider control of CXTPControlSlider.
  30. //===========================================================================
  31. class CXTPControlSliderCtrl : public CSliderCtrl
  32. {
  33. protected:
  34. //{{AFX_CODEJOCK_PRIVATE
  35. DECLARE_MESSAGE_MAP()
  36. //{{AFX_MSG(CXTPControlSliderCtrl)
  37. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  38. afx_msg HBRUSH CtlColor ( CDC* pDC, UINT nCtlColor );
  39. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  40. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  41. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  42. afx_msg void HScroll(UINT nSBCode, UINT nPos);
  43. afx_msg void VScroll(UINT nSBCode, UINT nPos);
  44. //}}AFX_MSG
  45. //}}AFX_CODEJOCK_PRIVATE
  46. protected:
  47. CXTPControlSlider* m_pControl;          // Parent CXTPControlSlider control
  48. private:
  49. friend class CXTPControlSlider;
  50. };
  51. //===========================================================================
  52. // Summary:
  53. //     CXTPControlSlider is a CXTPControl derived class.
  54. //     It represents an slider control.
  55. //===========================================================================
  56. class _XTP_EXT_CLASS CXTPControlSlider : public CXTPControl
  57. {
  58. DECLARE_XTP_CONTROL(CXTPControlSlider)
  59. public:
  60. //-----------------------------------------------------------------------
  61. // Summary:
  62. //     Constructs a CXTPControlSlider object
  63. //-----------------------------------------------------------------------
  64. CXTPControlSlider();
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     Destroys a CXTPControlSlider object, handles cleanup and deallocation
  68. //-----------------------------------------------------------------------
  69. virtual ~CXTPControlSlider();
  70. public:
  71. //-----------------------------------------------------------------------
  72. // Summary:
  73. //     Sets the slider current position
  74. // Parameters:
  75. //     nPos - New position of the slider control
  76. // See Also: GetPos, SetRange
  77. //-----------------------------------------------------------------------
  78. void SetPos(int nPos);
  79. //-----------------------------------------------------------------------
  80. // Summary:
  81. //     Call this member function to retrieve the current position of the slider
  82. // Returns:
  83. //     The position of the slider control
  84. // See Also: SetPos
  85. //-----------------------------------------------------------------------
  86. int GetPos();
  87. //-----------------------------------------------------------------------
  88. // Summary:
  89. //     Sets the upper and lower limits of the slider control's range
  90. // Parameters:
  91. //     nMin - Specifies the lower limit of the range
  92. //     nMax - Specifies the upper limit of the range
  93. // See Also: SetPos
  94. //-----------------------------------------------------------------------
  95. void SetRange(int nMin, int nMax);
  96. public:
  97. //-----------------------------------------------------------------------
  98. // Summary:
  99. //     Call this member to enable or disable the control.
  100. //     If the control does not have flags xtpFlagManualUpdate, you must call
  101. //     the Enable member of CCmdUI in the ON_UPDATE_COMMAND_UI handler.
  102. // Parameters:
  103. //     bEnabled - TRUE if the control is enabled.
  104. // See Also: GetEnabled, SetChecked
  105. //-----------------------------------------------------------------------
  106. void SetEnabled(BOOL bEnabled);
  107. public:
  108. //-----------------------------------------------------------------------
  109. // Summary:
  110. //     Returns  pointer to in-place slider control.
  111. //-----------------------------------------------------------------------
  112. CSliderCtrl* GetSliderCtrl() const;
  113. //-----------------------------------------------------------------------
  114. // Summary:
  115. //     Call this member to get the style of slider control.
  116. // Returns:
  117. //     The style of the slider control.
  118. // See Also: SetSliderStyle
  119. //-----------------------------------------------------------------------
  120. DWORD GetSliderStyle() const;
  121. //-----------------------------------------------------------------------
  122. // Summary:
  123. //     Call this member to set the style of slider control
  124. // Parameters:
  125. //     dwStyle - The style to be set
  126. // See Also: GetSliderStyle
  127. //-----------------------------------------------------------------------
  128. void SetSliderStyle(DWORD dwStyle);
  129. protected:
  130. //-----------------------------------------------------------------------
  131. // Summary:
  132. //     This method is called when position of scrollbar was changed
  133. // Parameters:
  134. //     nSBCode - Specifies a scroll-bar code that indicates the user's scrolling request
  135. //     nPos - Contains the current scroll-box position
  136. //-----------------------------------------------------------------------
  137. virtual void OnScroll(UINT nSBCode, UINT nPos);
  138. protected:
  139. //{{AFX_CODEJOCK_PRIVATE
  140. BOOL HasFocus() const;
  141. CSize GetSize(CDC* pDC);
  142. void Draw(CDC* pDC);
  143. void SetRect(CRect rcControl);
  144. void SetParent(CXTPCommandBar* pParent);
  145. void SetHideFlags(DWORD dwFlags);
  146. void OnCalcDynamicSize(DWORD dwMode);
  147. void OnClick(BOOL bKeyboard = FALSE, CPoint pt = CPoint(0, 0));
  148. virtual void OnThemeChanged();
  149. virtual int GetCustomizeMinWidth() const;
  150. virtual BOOL IsCustomizeResizeAllow() const;
  151. void Copy(CXTPControl* pControl, BOOL bRecursive = FALSE);
  152. void DoPropExchange(CXTPPropExchange* pPX);
  153. //}}AFX_CODEJOCK_PRIVATE
  154. protected:
  155. CXTPControlSliderCtrl* m_pSliderCtrl;           // Pointer to slider control
  156. int m_nMin;         // Lower range
  157. int m_nMax;         // Upper range
  158. int m_nPos;         // Current position of slider
  159. DWORD m_dwSliderStyle; // Slider style;
  160. CRect m_rcPadding;
  161. friend class CXTPControlSliderCtrl;
  162. };
  163. AFX_INLINE BOOL CXTPControlSlider::IsCustomizeResizeAllow() const {
  164. return TRUE;
  165. }
  166. AFX_INLINE int CXTPControlSlider::GetCustomizeMinWidth() const {
  167. return 20;
  168. }
  169. AFX_INLINE CSliderCtrl* CXTPControlSlider::GetSliderCtrl() const {
  170. return m_pSliderCtrl;
  171. }
  172. #endif // !defined(__XTPCONTOLSLIDER_H__)