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

对话框与窗口

开发平台:

Visual C++

  1. // XTPCalendarTip.h: interface for the CXTPCalendarTip class.
  2. //
  3. // This file is a part of the XTREME CALENDAR 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(__XTPCalendarTip_H__)
  22. #define __XTPCalendarTip_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. //===========================================================================
  28. // Summary:
  29. //     The CXTPCalendarTip class emulates the functionality of a "tool tip"
  30. //     control.
  31. // Remarks:
  32. //     The CXTPCalendarTip class encapsulates the functionality of
  33. //     a "tip control", a small pop-up window that displays a
  34. //     single line of text describing the hidden text when hovering over
  35. //     an item on the report area.
  36. //
  37. //          CXTPCalendarTip provides the functionality to control the
  38. //          the tip text, the size of the tip window itself, and the text
  39. //          font of the tip.
  40. //
  41. //          This class is used by the report control internally.
  42. //
  43. // See Also: CXTPCalendarControl
  44. //===========================================================================
  45. class _XTP_EXT_CLASS CXTPCalendarTip : public CWnd
  46. {
  47. // Construction
  48. public:
  49. //-----------------------------------------------------------------------
  50. // Summary:
  51. //     Constructs a CXTPCalendarTip object.
  52. // Remarks:
  53. //     Construct a CXTPCalendarTip object in two steps.
  54. //     Call the constructor object and then call
  55. //     Create, which initializes the window and
  56. //     attaches it to the parent window.
  57. //
  58. // Example:
  59. // <code>
  60. // Declare a local CXTPCalendarTip object.
  61. // CXTPCalendarTip wndTip;
  62. //
  63. // // Declare a dynamic CXTPCalendarTip object.
  64. // CXTPCalendarTip* pTipWnd = new CXTPCalendarTip;
  65. // </code>
  66. // See Also: CWnd, Create, Activate
  67. //-----------------------------------------------------------------------
  68. CXTPCalendarTip();
  69. //-----------------------------------------------------------------------
  70. // Summary:
  71. //     Destroys a CXTPCalendarTip object and handles cleanup and de-allocation.
  72. //-----------------------------------------------------------------------
  73. virtual ~CXTPCalendarTip();
  74. //-----------------------------------------------------------------------
  75. // Summary:
  76. //     This member function is used to create a report tip window.
  77. // Parameters:
  78. //     pParentWnd - A pointer to a CWnd that is the parent report
  79. //                  control window.
  80. // Remarks:
  81. //     Construct an object in two steps.
  82. //     Call the constructor object and then call
  83. //     Create(), which initializes the window and
  84. //     attaches it to the parent window.
  85. //
  86. // Example:
  87. // <code>
  88. // void MyDialog::ShowToolTip(CRect rcTip, CXTPCalendarTip* pTipWnd)
  89. // {
  90. //     if (!pTipWnd->GetSafeHwnd())
  91. //     {
  92. //         pTipWnd->Create(this);
  93. //     }
  94. //     pTipWnd->SetHoverRect(rcTip);
  95. //     pTipWnd->Activate(TRUE);
  96. // }
  97. // </code>
  98. // Returns:
  99. //     TRUE if tip window is created successfully, FALSE otherwise.
  100. // See Also: CXTPCalendarTip::CXTPCalendarTip, Activate
  101. //-----------------------------------------------------------------------
  102. virtual BOOL Create(CWnd* pParentWnd);
  103. // Attributes
  104. public:
  105. //-----------------------------------------------------------------------
  106. // Summary:
  107. //     This member function is used to obtain the tooltip text string.
  108. // Returns:
  109. //     A CString that contains the current tooltip text.
  110. // See Also: SetTooltipText
  111. //-----------------------------------------------------------------------
  112. CString GetTooltipText();
  113. //-----------------------------------------------------------------------
  114. // Summary:
  115. //     This member function is used to set the new tooltip text.
  116. // Parameters:
  117. //     str - An LPCSTR string that contains the new tooltip caption.
  118. // Remarks:
  119. //     Call this member function before activating the tooltip window.
  120. // See Also: GetTooltipText
  121. //-----------------------------------------------------------------------
  122. void SetTooltipText(LPCTSTR str);
  123. //-----------------------------------------------------------------------
  124. // Summary:
  125. //     This member function is used to set the tooltip text font.
  126. // Parameters:
  127. //     pFont - A pointer to a CFont object that contains the new font.
  128. //-----------------------------------------------------------------------
  129. void SetFont(CFont* pFont);
  130. //-----------------------------------------------------------------------
  131. // Summary:
  132. //     This member function is used to set the coordinates of the
  133. //     tooltip hover rectangle.
  134. // Parameters:
  135. //     rc - A CRect object that contains the new tooltip hover rectangle
  136. //          in the parent window coordinates.
  137. // Remarks:
  138. //     Called this member function before activating the tooltip window.
  139. // See Also: GetHoverRect
  140. //-----------------------------------------------------------------------
  141. void SetHoverRect(CRect rc);
  142. //-----------------------------------------------------------------------
  143. // Summary:
  144. //     This function is used to obtain the coordinates of a tooltip hover rectangle.
  145. // Returns:
  146. //     The coordinates of the tooltip hover rectangle in parent window coordinates.
  147. // See Also: SetHoverRect
  148. //-----------------------------------------------------------------------
  149. CRect GetHoverRect();
  150. //-----------------------------------------------------------------------
  151. // Summary:
  152. //     This function is used to check whether advanced mode is enabled.
  153. //     Advanced mode means left mouse click handling.
  154. // Returns:
  155. //     TRUE when advanced mode enabled (left mouse click handling).
  156. //-----------------------------------------------------------------------
  157. BOOL IsAdvancedMode();
  158. //-----------------------------------------------------------------------
  159. // Summary:
  160. //     This function is used to set advanced mode flag.
  161. //-----------------------------------------------------------------------
  162. void SetAdvancedMode(BOOL bMode = TRUE);
  163. //-----------------------------------------------------------------------
  164. // Summary:
  165. //     This member function sets (or disable) the new control drawing
  166. //     theme.
  167. // Parameters:
  168. //     pTheme - A CXTPCalendarTheme pointer to the theme object.
  169. //              If pTheme is NULL - themes are disabled and regular
  170. //              painting is used.
  171. //-----------------------------------------------------------------------
  172. void SetTheme(CXTPCalendarTheme* pTheme);
  173. // Operations
  174. public:
  175. //-----------------------------------------------------------------------
  176. // Summary:
  177. //     Call this function to activate or deactivate a tool tip control.
  178. // Parameters:
  179. //     bActive - A BOOL. Specifies whether the tool tip control is to be activated or deactivated.
  180. //     bAdvanced - TRUE for advanced processing (Office2007 theme "add new appt")
  181. // Remarks:
  182. //     If <i>bActivate</i> is <b>TRUE</b>, the control is activated.
  183. //     If <b>FALSE</b>, it is deactivated.
  184. //
  185. //          When a tool tip control is active, the tool tip information
  186. //          appears when the cursor is on a tool that is registered with
  187. //          the control. When it is inactive, the tool tip information
  188. //          does not appear, even when the cursor is on a tool.
  189. // Example: See Create method example.
  190. // See Also: Create, CXTPCalendarTip::CXTPCalendarTip, SetTooltipText
  191. //-----------------------------------------------------------------------
  192. void Activate(BOOL bActive, BOOL bAdvanced = FALSE);
  193. //-----------------------------------------------------------------------
  194. // Summary:
  195. //      This function is used to calculate tooltip rectangle.
  196. // Remarks:
  197. //      Standard window DC and stored font and tooltip text are used.
  198. // Returns:
  199. //     Size of the tooltip rectangle.
  200. // See Also: SetTooltipText, SetFont.
  201. //-----------------------------------------------------------------------
  202. CSize CalcToolTipRect();
  203. protected:
  204. //{{AFX_CODEJOCK_PRIVATE
  205. DECLARE_MESSAGE_MAP()
  206. //{{AFX_MSG(CXTPCalendarTip)
  207. afx_msg LRESULT OnNcHitTest(CPoint point);
  208. afx_msg BOOL OnEraseBkgnd(CDC*);
  209. afx_msg void OnPaint();
  210. //}}AFX_MSG
  211. //}}AFX_CODEJOCK_PRIVATE
  212. private:
  213. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  214. protected:
  215. CRect  m_rcHover;           // Hover window coordinates.
  216. CFont* m_pFont;             // Font for displaying tooltip text.
  217. CWnd * m_pParentWnd;        // Pointer to the parent report window.
  218. CString m_strTooltipText;   // Tooltip text to display.
  219. BOOL m_bAdvancedMode;       // TRUE when advanced mode is on
  220. CXTPCalendarTheme* m_pTheme;// Pointer to associated Theme object
  221. };
  222. AFX_INLINE BOOL CXTPCalendarTip::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  223. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  224. }
  225. AFX_INLINE CString CXTPCalendarTip::GetTooltipText() {
  226. return m_strTooltipText;
  227. }
  228. AFX_INLINE void CXTPCalendarTip::SetTooltipText(LPCTSTR str) {
  229. m_strTooltipText = str;
  230. }
  231. AFX_INLINE void CXTPCalendarTip::SetFont(CFont* pFont) {
  232. m_pFont = pFont;
  233. }
  234. AFX_INLINE void CXTPCalendarTip::SetHoverRect(CRect rc) {
  235. m_rcHover = rc;
  236. MoveWindow(rc);
  237. }
  238. AFX_INLINE CRect CXTPCalendarTip::GetHoverRect() {
  239. return m_rcHover;
  240. }
  241. AFX_INLINE void CXTPCalendarTip::SetAdvancedMode(BOOL bMode) {
  242. m_bAdvancedMode = bMode;
  243. }
  244. AFX_INLINE BOOL CXTPCalendarTip::IsAdvancedMode() {
  245. return m_bAdvancedMode;
  246. }
  247. #endif // !defined(__XTPCalendarTip_H__)