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

对话框与窗口

开发平台:

Visual C++

  1. // XTPReportHyperlink.h: interface for the CXTPReportHyperlink class.
  2. //
  3. // This file is a part of the XTREME REPORTCONTROL 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(__XTPREPORTRECORDHYPERLINK_H__)
  22. #define __XTPREPORTRECORDHYPERLINK_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "Common/XTPSmartPtrInternalT.h"
  28. #include "XTPReportDefines.h"
  29. class CXTPPropExchange;
  30. #pragma warning(disable: 4097)
  31. //===========================================================================
  32. // Summary:
  33. //     This class represents hyperlinks. It stores first position and length
  34. //     in the text for hyperlink and rectangle for drawing and
  35. //     identify clicks on hyperlink. To create an instance of its class, you
  36. //     simply call constructor with first position and length of the
  37. //     hyperlink's text
  38. //===========================================================================
  39. class _XTP_EXT_CLASS CXTPReportHyperlink : public CXTPHeapObjectT<CCmdTarget, CXTPReportDataAllocator>
  40. {
  41. //{{AFX_CODEJOCK_PRIVATE
  42. DECLARE_DYNAMIC(CXTPReportHyperlink)
  43. //}}AFX_CODEJOCK_PRIVATE
  44. public:
  45. //-----------------------------------------------------------------------
  46. // Summary:
  47. //     Default CXTPReportHyperlink constructor.
  48. // Parameters:
  49. //     nHyperTextBegin - Begin position of the hyperlink item text in the parent item caption.
  50. //     nHyperTextLen   - Hyperlink item text length.
  51. //-----------------------------------------------------------------------
  52. CXTPReportHyperlink(int nHyperTextBegin = 0, int nHyperTextLen = 0);
  53. //-----------------------------------------------------------------------
  54. // Summary:
  55. //     Destroys CXTPReportHyperlink object. Performs cleanup operations.
  56. //-----------------------------------------------------------------------
  57. virtual ~CXTPReportHyperlink();
  58. //-----------------------------------------------------------------------
  59. // Summary:
  60. //     Call this member function to Store/Load a report Hyperlink
  61. //     using the specified data object.
  62. // Parameters:
  63. //     pPX - Source or destination CXTPPropExchange data object reference.
  64. //-----------------------------------------------------------------------
  65. virtual void DoPropExchange(CXTPPropExchange* pPX);
  66. public:
  67. CRect       m_rcHyperSpot;      // Hyperlink draw place.
  68. int         m_nHyperTextBegin;  // Start position of the hyperlink in the item text.
  69. int         m_nHyperTextLen;    // The length of hyperlink text.
  70. protected:
  71. };
  72. //===========================================================================
  73. // Summary:
  74. //      This typedef used to declare a base class for CXTPReportHyperlinks.
  75. //===========================================================================
  76. typedef CXTPArrayT<CXTPReportHyperlink*, CXTPReportHyperlink*, LPDISPATCH> CXTPReportHyperlinks_base;
  77. //===========================================================================
  78. // Summary:
  79. //      This class represents array of pointers to CXTPReportHyperlink objects.
  80. //      InternalRelease is called for each item in the array destructor.
  81. //      Also serialization for array items is provided (see DoPropExchange method).
  82. //===========================================================================
  83. class _XTP_EXT_CLASS CXTPReportHyperlinks : public CXTPHeapObjectT<CXTPReportHyperlinks_base, CXTPReportDataAllocator>
  84. {
  85. //{{AFX_CODEJOCK_PRIVATE
  86. DECLARE_DYNAMIC(CXTPReportHyperlinks)
  87. typedef CXTPArrayT<CXTPReportHyperlink*, CXTPReportHyperlink*, LPDISPATCH> TBase;
  88. //}}AFX_CODEJOCK_PRIVATE
  89. public:
  90. //-----------------------------------------------------------------------
  91. // Summary:
  92. //     Default CXTPReportHyperlink constructor.
  93. //-----------------------------------------------------------------------
  94. CXTPReportHyperlinks();
  95. //-----------------------------------------------------------------------
  96. // Summary:
  97. //     Default CXTPReportHyperlink destructor.
  98. //-----------------------------------------------------------------------
  99. virtual ~CXTPReportHyperlinks();
  100. //-----------------------------------------------------------------------
  101. // Summary:
  102. //     Call this member function to Store/Load a report Hyperlink items
  103. //     using the specified data object.
  104. // Parameters:
  105. //     pPX - Source or destination CXTPPropExchange data object reference.
  106. //-----------------------------------------------------------------------
  107. virtual void DoPropExchange(CXTPPropExchange* pPX);
  108. //-----------------------------------------------------------------------
  109. // Summary:
  110. //      Remove hyperlink at the specified index.
  111. // Parameters:
  112. //      nIndex - A zero based index to remove item.
  113. // See Also:
  114. //      CXTPReportHyperlink, CXTPArrayT
  115. //-----------------------------------------------------------------------
  116. virtual void RemoveAt(int nIndex);
  117. //-------------------------------------------------------------------------
  118. // Summary:
  119. //      Remove all items from the collection.
  120. // See Also:
  121. //      RemoveAt, CXTPReportHyperlink, CXTPArrayT
  122. //-------------------------------------------------------------------------
  123. virtual void RemoveAll();
  124. //-------------------------------------------------------------------------
  125. // Summary:
  126. //      This method copy all members from specified source object.
  127. // Parameters:
  128. //      pSrc - pointer to a source object.
  129. //-------------------------------------------------------------------------
  130. virtual void CopyFrom(CXTPReportHyperlinks* pSrc);
  131. protected:
  132. };
  133. /////////////////////////////////////////////////////////////////////////////
  134. #endif // !defined(__XTPREPORTRECORDHYPERLINK_H__)