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

对话框与窗口

开发平台:

Visual C++

  1. // XTPReportGroupItem.h: interface for the CXTPReportGroupItem 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(__XTPREPORTGROUPROW_H__)
  22. #define __XTPREPORTGROUPROW_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "XTPReportRow.h"
  28. //===========================================================================
  29. // Summary:
  30. //     This class represents a 'group row' of the report control view -
  31. //     that means a row which has no associated Record item, but
  32. //     has a special text caption instead.
  33. // Remarks:
  34. //     CXTPReportGroupRow has a slightly different reaction on mouse events and another
  35. //     draw logic.
  36. //
  37. //     All other behavior of the group row is similar to its parent.
  38. //
  39. // See Also: CXTPReportRow overview, CXTPReportControl overview
  40. //===========================================================================
  41. class _XTP_EXT_CLASS CXTPReportGroupRow : public CXTPReportRow
  42. {
  43. public:
  44. //-----------------------------------------------------------------------
  45. // Summary:
  46. //     A constructor of the CXTPReportGroupRow object.
  47. //-----------------------------------------------------------------------
  48. CXTPReportGroupRow();
  49. //-----------------------------------------------------------------------
  50. // Summary:
  51. //     Returns the group text caption.
  52. // Remarks:
  53. //     Call this member function to retrieve a text caption of this
  54. //     group row item.
  55. // Returns:
  56. //     Group text caption.
  57. // See Also: CXTPReportGroupRow::CXTPReportGroupRow
  58. //-----------------------------------------------------------------------
  59. virtual CString GetCaption();
  60. //-----------------------------------------------------------------------
  61. // Summary:
  62. //     Returns tool tip text displayed for this group row.
  63. // Remarks:
  64. //     Call this member function to retrieve the tool tip text displayed the
  65. //     this group row.
  66. // Returns:
  67. //     Tool tip Text for this row.
  68. //-----------------------------------------------------------------------
  69. virtual CString GetTooltip();
  70. //-----------------------------------------------------------------------
  71. // Summary:
  72. //     Call this member to specify the text that is displayed as the group
  73. //     caption when the column that the ReportRecordItem is in has been grouped.
  74. // Parameters:
  75. //     lpszCaption - Caption to be set
  76. // Remarks:
  77. //     When a column that the ReportRecordItem belong to has been grouped,
  78. //     the caption of the column is displayed as
  79. //     the group caption.  If you specify a caption with CXTPReportGroupRow::SetCaption
  80. //     for the ReportRecordItem, the m_strGroupText text
  81. //     will be displayed instead of the caption of the column.
  82. //     You can use CXTPReportGroupRow::SetCaption to "sub group" your ReportRecordItems when
  83. //     the column they belong to has been grouped.  The ReportRecordItems
  84. //     will be "sub grouped" by the value in m_strGroupText when the
  85. //     column they belong to is grouped.
  86. //-----------------------------------------------------------------------
  87. void SetCaption(LPCTSTR lpszCaption);
  88. //-----------------------------------------------------------------------
  89. // Summary:
  90. //     Draws the row using the specified device context.
  91. // Parameters:
  92. //     pDC     - A pointer to the device context in which the drawing occurs.
  93. //     rcRow   - Position of the row in client window coordinates.
  94. //     nLeftOffset - Start drawing left offset in pixels (Horizontal scroll position).
  95. // See Also: CXTPReportRow::Draw
  96. //-----------------------------------------------------------------------
  97. virtual void Draw(CDC* pDC, CRect rcRow, int nLeftOffset);
  98. //-----------------------------------------------------------------------
  99. // Summary:
  100. //     Process mouse single clicks.
  101. // Parameters:
  102. //     ptClicked - Point coordinates where the message was fired from.
  103. // See Also: CXTPReportRow::OnClick
  104. //-----------------------------------------------------------------------
  105. void OnClick(CPoint ptClicked);
  106. //-----------------------------------------------------------------------
  107. // Summary:
  108. //     Process mouse double clicks.
  109. // Parameters:
  110. //     ptClicked - Point coordinates where the message was fired from.
  111. // Remarks:
  112. //     Group row adds a collapse/expand functionality if double-
  113. //     clicked on a row.
  114. // See Also: CXTPReportRow::OnDblClick
  115. //-----------------------------------------------------------------------
  116. void OnDblClick(CPoint ptClicked);
  117. //-----------------------------------------------------------------------
  118. // Summary:
  119. //     Determines if this is a group row or not.
  120. // Returns:
  121. //     TRUE because this is a group row.
  122. // See Also: CXTPReportRow::IsGroupRow
  123. //-----------------------------------------------------------------------
  124. BOOL IsGroupRow() const;
  125. protected:
  126. //-----------------------------------------------------------------------
  127. // Summary:
  128. //     The framework calls this member function to determine whether a
  129. //     point is in the bounding rectangle of the specified tool.
  130. // Parameters:
  131. //     point - Specifies the x- and y-coordinate of the cursor. These
  132. //             coordinates are always relative to the upper-left corner of the window
  133. //     pTI   - A pointer to a TOOLINFO structure.
  134. // Returns:
  135. //     If the tooltip control was found, the window control ID. If
  136. //     the tooltip control was not found, -1.
  137. //-----------------------------------------------------------------------
  138. virtual INT_PTR OnToolHitTest(CPoint point, TOOLINFO* pTI);
  139. protected:
  140. CString m_strGroupText;     // group text label
  141. friend class CXTPReportPaintManager;
  142. };
  143. AFX_INLINE BOOL CXTPReportGroupRow::IsGroupRow() const {
  144. return TRUE;
  145. }
  146. AFX_INLINE CString CXTPReportGroupRow::GetTooltip() {
  147. return GetCaption();
  148. }
  149. #endif //#if !defined(__XTPREPORTGROUPROW_H__)