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

对话框与窗口

开发平台:

Visual C++

  1. // XTPControlProgress.h : interface for the CXTPControlProgress 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. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTPCONTOLPROGRESS_H__)
  22. #define __XTPCONTOLPROGRESS_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. #include "XTPControl.h"
  28. #include "Common/XTPWinThemeWrapper.h"
  29. class CXTPProgressPaintManager;
  30. //===========================================================================
  31. // Summary:
  32. //     CXTPControlProgressBase is base class for all progress objects
  33. //===========================================================================
  34. class _XTP_EXT_CLASS CXTPProgressBase
  35. {
  36. public:
  37. CXTPProgressBase();
  38. virtual ~CXTPProgressBase();
  39. public:
  40. void SetRange(int nLower, int nUpper);
  41. void GetRange(int& nLower, int& nUpper) const;
  42. int GetPos() const;
  43. void SetPos(int nPos);
  44. public:
  45. //----------------------------------------------------------------------
  46. // Summary:
  47. //     This method is called to get bounding rectangle of progressbar
  48. //----------------------------------------------------------------------
  49. virtual CRect GetProgressRect() = 0;
  50. protected:
  51. //----------------------------------------------------------------------
  52. // Summary:
  53. //     This method is called to redraw progress bar
  54. //----------------------------------------------------------------------
  55. virtual void RedrawProgress() = 0;
  56. //----------------------------------------------------------------------
  57. // Summary:
  58. //     This method is called to retrieve pointer to CXTPProgressPaintManager
  59. //----------------------------------------------------------------------
  60. virtual CXTPProgressPaintManager* GetProgressPaintManager() const = 0;
  61. protected:
  62. int m_nMin;     // Minimum
  63. int m_nMax;     // Maximum
  64. int m_nPos;     // Current position
  65. };
  66. //===========================================================================
  67. // Summary:
  68. //     CXTPControlProgress is a CXTPControl derived class.
  69. //     It represents an progress control.
  70. //===========================================================================
  71. class _XTP_EXT_CLASS CXTPControlProgress : public CXTPControl, public CXTPProgressBase
  72. {
  73. DECLARE_XTP_CONTROL(CXTPControlProgress)
  74. public:
  75. //-----------------------------------------------------------------------
  76. // Summary:
  77. //     Constructs a CXTPControlProgress object
  78. //-----------------------------------------------------------------------
  79. CXTPControlProgress();
  80. protected:
  81. //----------------------------------------------------------------------
  82. // Summary:
  83. //     This method is called to determine the size of the control.
  84. // Parameters:
  85. //     pDC - Pointer to a valid device context
  86. // Returns:
  87. //     Size of the control.
  88. //----------------------------------------------------------------------
  89. virtual CSize GetSize(CDC* pDC);
  90. //----------------------------------------------------------------------
  91. // Summary:
  92. //     This method is called to draw the control.
  93. // Parameters:
  94. //     pDC - Pointer to a valid device context.
  95. //----------------------------------------------------------------------
  96. virtual void Draw(CDC* pDC);
  97. protected:
  98. virtual void RedrawProgress();
  99. virtual CXTPProgressPaintManager* GetProgressPaintManager() const;
  100. virtual CRect GetProgressRect();
  101. protected:
  102. void Copy(CXTPControl* pControl, BOOL bRecursive = FALSE);
  103. void DoPropExchange(CXTPPropExchange* pPX);
  104. };
  105. class _XTP_EXT_CLASS CXTPProgressPaintManager
  106. {
  107. public:
  108. //-----------------------------------------------------------------------
  109. // Summary:
  110. //     Constructs a CXTPProgressPaintManager object
  111. // Parameters:
  112. //     pPaintManager - PaintManager of commandbars
  113. //-----------------------------------------------------------------------
  114. CXTPProgressPaintManager(CXTPPaintManager* pPaintManager);
  115. //-----------------------------------------------------------------------
  116. // Summary:
  117. //     Destroys a CXTPProgressPaintManager object, handles cleanup and deallocation
  118. //-----------------------------------------------------------------------
  119. virtual ~CXTPProgressPaintManager();
  120. public:
  121. //-----------------------------------------------------------------------
  122. // Summary:
  123. //     This method is called to draw progress
  124. // Parameters:
  125. //     pDC - Pointer to device context
  126. //     pProgressBar - Progress to draw
  127. //-----------------------------------------------------------------------
  128. virtual void DrawProgress(CDC* pDC, CXTPProgressBase* pProgressBar);
  129. //-------------------------------------------------------------------------
  130. // Summary:
  131. //     Recalculates metrics
  132. //-------------------------------------------------------------------------
  133. virtual void RefreshMetrics();
  134. //-----------------------------------------------------------------------
  135. // Summary:
  136. //     Returns parent paintmanager object
  137. //-----------------------------------------------------------------------
  138. CXTPPaintManager* GetPaintManager() const;
  139. protected:
  140. CXTPWinThemeWrapper m_themeProgress;
  141. CXTPPaintManager* m_pPaintManager;
  142. public:
  143. int m_cyProgress;
  144. };
  145. AFX_INLINE  int CXTPProgressBase::GetPos() const {
  146. return m_nPos;
  147. }
  148. AFX_INLINE CXTPPaintManager* CXTPProgressPaintManager::GetPaintManager() const {
  149. return m_pPaintManager;
  150. }
  151. #endif //#if !defined(__XTPCONTOLPROGRESS_H__)