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

对话框与窗口

开发平台:

Visual C++

  1. // XTPReportDragDrop.h: interface for the CXTPReportHeaderDragWnd and
  2. //                      CXTPReportHeaderDropWnd classes.
  3. //
  4. // This file is a part of the XTREME REPORTCONTROL MFC class library.
  5. // (c)1998-2008 Codejock Software, All Rights Reserved.
  6. //
  7. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  8. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  9. // CONSENT OF CODEJOCK SOFTWARE.
  10. //
  11. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  12. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  13. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  14. // SINGLE COMPUTER.
  15. //
  16. // CONTACT INFORMATION:
  17. // support@codejock.com
  18. // http://www.codejock.com
  19. //
  20. /////////////////////////////////////////////////////////////////////////////
  21. //{{AFX_CODEJOCK_PRIVATE
  22. #if !defined(__XTPREPORTDRAGDROP_H__)
  23. #define __XTPREPORTDRAGDROP_H__
  24. //}}AFX_CODEJOCK_PRIVATE
  25. #if _MSC_VER > 1000
  26. #pragma once
  27. #endif // _MSC_VER > 1000
  28. class CXTPReportHeader;
  29. class CXTPReportPaintManager;
  30. class CXTPReportColumn;
  31. //===========================================================================
  32. // Summary:
  33. //     CXTPReportHeaderDragWnd is CWnd derived class, it used internally to
  34. //     represent dragging column window.
  35. //===========================================================================
  36. class _XTP_EXT_CLASS CXTPReportHeaderDragWnd : public CWnd
  37. {
  38. public:
  39. //-----------------------------------------------------------------------
  40. // Summary:
  41. //     Creates CXTPReportHeaderDragWnd object.
  42. //-----------------------------------------------------------------------
  43. CXTPReportHeaderDragWnd();
  44. //-----------------------------------------------------------------------
  45. // Summary:
  46. //     Default CXTPReportHeaderDragWnd destructor.
  47. //-----------------------------------------------------------------------
  48. virtual ~CXTPReportHeaderDragWnd();
  49. public:
  50. //-----------------------------------------------------------------------
  51. // Summary:
  52. //     Creates dragging window with the specified parameters.
  53. // Parameters:
  54. //     rect          - Drawing rectangle position.
  55. //     pHeader       - Pointer to parent report header object.
  56. //     pPaintManager - Paint manager for performing draw operations.
  57. //     pColumn       - Pointer to the associated column.
  58. // Returns:
  59. //     TRUE if created successfully, FALSE otherwise.
  60. //-----------------------------------------------------------------------
  61. virtual BOOL Create(CRect rect, CXTPReportHeader* pHeader, CXTPReportPaintManager* pPaintManager, CXTPReportColumn* pColumn);
  62. protected:
  63. //-----------------------------------------------------------------------
  64. // Summary:
  65. //     Called by the framework to draw the contents of the window using the specified device context.
  66. // Parameters:
  67. //     pDC - A pointer to the device context in which the drawing occurs.
  68. //     rcClient - Coordinates of the client window position.
  69. //-----------------------------------------------------------------------
  70. virtual void OnDraw(CDC* pDC, CRect rcClient);
  71. protected:
  72. //{{AFX_CODEJOCK_PRIVATE
  73. //{{AFX_MSG(CXTPReportHeaderDragWnd)
  74. afx_msg void OnPaint();
  75. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  76. afx_msg void OnTimer(UINT_PTR nIDEvent);
  77. //}}AFX_MSG
  78. //{{AFX_VIRTUAL(CXTPReportHeaderDragWnd)
  79. virtual void PostNcDestroy();
  80. //}}AFX_VIRTUAL
  81. //}}AFX_CODEJOCK_PRIVATE
  82. private:
  83. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  84. DECLARE_MESSAGE_MAP()
  85. protected:
  86. CXTPReportHeader* m_pHeader;             // Pointer to the associated report header object.
  87. CXTPReportPaintManager* m_pPaintManager; // Pointer to the associated paint manager object.
  88. CXTPReportColumn* m_pColumn;             // Pointer to the associated report column object.
  89. };
  90. //===========================================================================
  91. // Summary:
  92. //     CXTPReportHeaderDropWnd is CWnd derived class, it used internally to
  93. //     represent drop target arrows.
  94. //===========================================================================
  95. class _XTP_EXT_CLASS CXTPReportHeaderDropWnd : public CWnd
  96. {
  97. public:
  98. //-----------------------------------------------------------------------
  99. // Summary:
  100. //     Creates CXTPReportHeaderDropWnd object.
  101. // Parameters:
  102. //     crColor - Drop window color.
  103. //-----------------------------------------------------------------------
  104. CXTPReportHeaderDropWnd(COLORREF crColor);
  105. //-----------------------------------------------------------------------
  106. // Summary:
  107. //     Destroys CXTPReportHeaderDropWnd object. Performs cleanup operations.
  108. //-----------------------------------------------------------------------
  109. virtual ~CXTPReportHeaderDropWnd();
  110. public:
  111. //-----------------------------------------------------------------------
  112. // Summary:
  113. //     Changes window position.
  114. // Parameters:
  115. //     xPos - New horizontal position.
  116. //     yPos - New vertical position.
  117. //-----------------------------------------------------------------------
  118. void SetWindowPos(int xPos, int yPos);
  119. //-----------------------------------------------------------------------
  120. // Summary:
  121. //     Creates a drop window with the specified gap inside.
  122. // Parameters:
  123. //     nHeight - Height between 2 arrows in pixels.
  124. // Returns:
  125. //     TRUE if created successfully, FALSE otherwise.
  126. //-----------------------------------------------------------------------
  127. virtual BOOL Create(int nHeight);
  128. protected:
  129. //{{AFX_CODEJOCK_PRIVATE
  130. //{{AFX_VIRTUAL(CXTPReportHeaderDropWnd)
  131. virtual void PostNcDestroy();
  132. //}}AFX_VIRTUAL
  133. //{{AFX_MSG(CXTPReportHeaderDropWnd)
  134. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  135. //}}AFX_MSG
  136. //}}AFX_CODEJOCK_PRIVATE
  137. private:
  138. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  139. DECLARE_MESSAGE_MAP()
  140. protected:
  141. COLORREF m_clr; // Drawing brush.
  142. CRgn m_rgn;     // Arrows region.
  143. int m_nHeight;  // Height of the gap between 2 arrows.
  144. };
  145. //////////////////////////////////////////////////////////////////////////
  146. AFX_INLINE BOOL CXTPReportHeaderDragWnd::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  147. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  148. }
  149. AFX_INLINE BOOL CXTPReportHeaderDropWnd::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  150. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  151. }
  152. #endif //#if !defined(__XTPREPORTDRAGDROP_H__)