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

对话框与窗口

开发平台:

Visual C++

  1. // XTPReportTip.h: interface for the CXTPReportTip 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(__XTPREPORTTIP_H__)
  22. #define __XTPREPORTTIP_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. //===========================================================================
  28. // Summary:
  29. //     The CXTPReportTip class encapsulates the functionality of
  30. //     a "tip control", a small pop-up window that displays a
  31. //     single line of text describing the hidden text when hovering an
  32. //     item on the report area.
  33. // Remarks:
  34. //     CXTPReportTip provides the functionality to control the
  35. //     the tip text, the size of the tip window itself, and the text
  36. //     font of the tip.
  37. //
  38. //     This class is used by the report control internally.
  39. //
  40. // See Also: CXTPReportControl, CXTPReportRow::ShowToolTip
  41. //===========================================================================
  42. class _XTP_EXT_CLASS CXTPReportTip : public CWnd
  43. {
  44. friend class CXTPReportRow;
  45. public:
  46. //-----------------------------------------------------------------------
  47. // Summary:
  48. //     Constructs a CXTPReportTip object.
  49. // Remarks:
  50. //     You construct a object object in two steps.
  51. //     First, call the constructor object and then call
  52. //     Create, which initializes the window and
  53. //     attaches it to the parent window.
  54. //
  55. // Example:
  56. // <code>
  57. // // Declare a local CXTPReportTip object.
  58. // CXTPReportTip wndTip;
  59. //
  60. // // Declare a dynamic CXTPReportTip object.
  61. // CXTPReportTip* pTipWnd = new CXTPReportTip;
  62. // </code>
  63. //
  64. // See Also: CWnd, Create, Activate, CXTPReportRow::ShowToolTip
  65. //-----------------------------------------------------------------------
  66. CXTPReportTip();
  67. //-----------------------------------------------------------------------
  68. // Summary:
  69. //     Destroys a CXTPReportTip object, handles cleanup and deallocation
  70. //-----------------------------------------------------------------------
  71. virtual ~CXTPReportTip();
  72. //-----------------------------------------------------------------------
  73. // Summary:
  74. //     Creates report tip window.
  75. // Parameters:
  76. //     pParentWnd - Parent report control window.
  77. // Remarks:
  78. //     You construct an object in two steps.
  79. //     First, call the constructor object and then call
  80. //     Create, which initializes the window and
  81. //     attaches it to the parent window.
  82. // Returns:
  83. //     TRUE if the tip window was created successfully, FALSE otherwise.
  84. // See Also: CXTPReportTip::CXTPReportTip, Activate
  85. //-----------------------------------------------------------------------
  86. virtual BOOL Create(CWnd* pParentWnd);
  87. public:
  88. //-----------------------------------------------------------------------
  89. // Summary:
  90. //     Returns tooltip text string.
  91. // Returns:
  92. //     Current tooltip text.
  93. // See Also: SetTooltipText
  94. //-----------------------------------------------------------------------
  95. CString GetTooltipText() const;
  96. //-----------------------------------------------------------------------
  97. // Summary:
  98. //     Sets new tooltip text to show.
  99. // Parameters:
  100. //     str - A string with the new tooltip caption.
  101. // Remarks:
  102. //     Should be called before activating the tooltip window.
  103. // See Also: GetTooltipText
  104. //-----------------------------------------------------------------------
  105. void SetTooltipText(LPCTSTR str);
  106. //-----------------------------------------------------------------------
  107. // Summary:
  108. //     Sets tooltip text displaying font.
  109. // Parameters:
  110. //     pFont - Pointer to the new font object.
  111. //-----------------------------------------------------------------------
  112. void SetFont(CFont* pFont);
  113. //-----------------------------------------------------------------------
  114. // Summary:
  115. //     Sets coordinates of the tooltip hover rectangle.
  116. // Parameters:
  117. //     rc - New tooltip hover rectangle in parent window coordinates.
  118. // Remarks:
  119. //     Should be called before activating the tooltip window.
  120. // See Also: GetHoverRect
  121. //-----------------------------------------------------------------------
  122. void SetHoverRect(CRect rc);
  123. //-----------------------------------------------------------------------
  124. // Summary:
  125. //     Returns the coordinates of the tooltip hover rectangle.
  126. // Returns:
  127. //     Coordinates of the tooltip hover rectangle in parent window coordinates.
  128. // See Also: SetHoverRect
  129. //-----------------------------------------------------------------------
  130. CRect GetHoverRect() const;
  131. public:
  132. //-----------------------------------------------------------------------
  133. // Summary:
  134. //     Call this function to activate or deactivate a tool tip control.
  135. // Parameters:
  136. //     bActive - Specifies whether the tool tip control is to be activated or deactivated.
  137. //     bMultiline - Specifies whether the tool tip is to be multiline.
  138. // Remarks:
  139. //     If <i>bActivate</i> is <b>TRUE</b>, the control is activated;
  140. //     if <b>FALSE</b>, it is deactivated.
  141. //
  142. //     When a tool tip control is active, the tool tip information
  143. //     appears when the cursor is on a tool that is registered with
  144. //     the control; when it is inactive, the tool tip information
  145. //     does not appear, even when the cursor is on a tool.
  146. // See Also: Create, CXTPReportTip::CXTPReportTip, SetTooltipText
  147. //-----------------------------------------------------------------------
  148. void Activate(BOOL bActive, BOOL bMultiline);
  149. protected:
  150. CRect  m_rcHover;           // Hover window coordinates.
  151. CWnd * m_pParentWnd;        // Pointer to the parent report window.
  152. CString m_strTooltipText;   // Tooltip text to display.
  153. CXTPReportRecordItem* m_pItem;  // Item which tooltip is visible.
  154. int m_nRowIndex;            // Index of item's row.
  155. CFont m_fntToolTip;         // Font for displaying tooltip text.
  156. BOOL m_bMultiline;          // Multiline tooltip flag.
  157. protected:
  158. //{{AFX_CODEJOCK_PRIVATE
  159. //{{AFX_MSG(CXTPReportTip)
  160. afx_msg LRESULT OnNcHitTest(CPoint point);
  161. afx_msg BOOL OnEraseBkgnd(CDC*);
  162. afx_msg void OnPaint();
  163. //}}AFX_MSG
  164. //}}AFX_CODEJOCK_PRIVATE
  165. private:
  166. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  167. DECLARE_MESSAGE_MAP()
  168. };
  169. AFX_INLINE CString CXTPReportTip::GetTooltipText() const{
  170. return m_strTooltipText;
  171. }
  172. AFX_INLINE void CXTPReportTip::SetTooltipText(LPCTSTR str) {
  173. m_strTooltipText = str;
  174. }
  175. AFX_INLINE void CXTPReportTip::SetFont(CFont* pFont) {
  176. m_fntToolTip.DeleteObject();
  177. LOGFONT lf;
  178. pFont->GetLogFont(&lf);
  179. m_fntToolTip.CreateFontIndirect(&lf);
  180. }
  181. AFX_INLINE void CXTPReportTip::SetHoverRect(CRect rc) {
  182. m_rcHover = rc;
  183. MoveWindow(rc);
  184. }
  185. AFX_INLINE CRect CXTPReportTip::GetHoverRect() const {
  186. return m_rcHover;
  187. }
  188. AFX_INLINE BOOL CXTPReportTip::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  189. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  190. }
  191. #endif // !defined(__XTPREPORTTIP_H__)