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

对话框与窗口

开发平台:

Visual C++

  1. // XTPToolBar.h : interface for the CXTPToolBar class.
  2. //
  3. // This file is a part of the XTREME COMMANDBARS 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(__XTPDIALOGBAR_H__)
  22. #define __XTPDIALOGBAR_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. class CXTPPopupBar;
  28. #include "XTPToolBar.h"
  29. //===========================================================================
  30. // Summary:
  31. //     CXTPDialogBar is a CXTPToolBar derived class. It represents dockable container for child window
  32. //===========================================================================
  33. class _XTP_EXT_CLASS CXTPDialogBar : public CXTPToolBar
  34. {
  35. //{{AFX_CODEJOCK_PRIVATE
  36. class CControlButtonHide;
  37. class CControlCaptionPopup;
  38. class CCaptionPopupBar;
  39. //}}AFX_CODEJOCK_PRIVATE
  40. public:
  41. //-------------------------------------------------------------------------
  42. // Summary:
  43. //     Constructs a CXTPDialogBar object
  44. //-------------------------------------------------------------------------
  45. CXTPDialogBar();
  46. //-------------------------------------------------------------------------
  47. // Summary:
  48. //     Destroys a CXTPDialogBar object, handles cleanup and deallocation.
  49. //-------------------------------------------------------------------------
  50. virtual ~CXTPDialogBar();
  51. public:
  52. //-----------------------------------------------------------------------
  53. // Summary:
  54. //     Call this member to specify the child window displayed under the
  55. //     dialog bar.
  56. // Parameters:
  57. //     pChild - Pointer to a CWnd object that is displayed under the
  58. //              dialog bar.
  59. //-----------------------------------------------------------------------
  60. void SetChild(CWnd* pChild);
  61. //-----------------------------------------------------------------------
  62. // Summary:
  63. //     Call this member to set the text that will be displayed in the
  64. //     dialog bar's caption popup.
  65. // Parameters:
  66. //     lpszCaption - Text that is displayed in the dialog bar's caption popup.
  67. // Remarks:
  68. //     This is the text displayed in the dialog bar's caption popup.  The
  69. //     caption popup can be used to indicate what is being displayed in the
  70. //     child window.
  71. //-----------------------------------------------------------------------
  72. void SetCaption(LPCTSTR lpszCaption);
  73. //-----------------------------------------------------------------------
  74. // Summary:
  75. //     Call this member to retrieve the text displayed in the caption popup.
  76. // Returns:
  77. //     The text displayed in the caption popup.
  78. //-----------------------------------------------------------------------
  79. CString GetCaption() const;
  80. //-----------------------------------------------------------------------
  81. // Summary:
  82. //     Call this member to hide the caption popup control (and close button).
  83. // Parameters:
  84. //     bVisible - TRUE to hide the caption popup control, FALSE to show it.
  85. // Remarks:
  86. //     If bVisible is TRUE, only the commandbar is displayed, the caption
  87. //     popup and close button are hidden.
  88. //-----------------------------------------------------------------------
  89. void SetCaptionVisible(BOOL bVisible);
  90. //-----------------------------------------------------------------------
  91. // Summary:
  92. //     Call this member to tell the caption popup which CMenu popup to display
  93. //     when the the caption popup is dropped down.
  94. // Parameters:
  95. //     nMenuResourceID - Id of the CMenu resource that contains the popup
  96. //                       menu that should be displayed when the caption popup
  97. //                       is clicked/displayed.
  98. // Remarks:
  99. //     If there is more than one popup on the CMenu resource, then only the
  100. //     first popup on the CMenu will be used.
  101. //-----------------------------------------------------------------------
  102. void SetCaptionPopup(int nMenuResourceID);
  103. //-----------------------------------------------------------------------
  104. // Summary:
  105. //     Call this member to retrieve a pointer to the CXTPPopupBar that is
  106. //     displayed when the caption popup control is clicked/dropped down.
  107. // Returns:
  108. //     Pointer to the CXTPPopupBar that is displayed when the caption
  109. //     popup control is clicked/dropped down.
  110. //-----------------------------------------------------------------------
  111. CXTPPopupBar* GetCaptionPopup() const;
  112. //-----------------------------------------------------------------------
  113. // Summary:
  114. //     Call this member to specify whether the dialog bar will be re-sizable.
  115. // Parameters:
  116. //     bResizable - TRUE if the dialog bar can be resized, FALSE to lock
  117. //                  the dialog bar.
  118. // Remarks:
  119. //     By default, bResizable is TRUE.  If FALSE, no splitter is displayed
  120. //     when the mouse pointer is positioned over the dialog bar borders.
  121. //     You can use the SetSize member function to change the size of the
  122. //     dialog bar programmatically.
  123. //-----------------------------------------------------------------------
  124. void SetResizable(BOOL bResizable);
  125. //-----------------------------------------------------------------------
  126. // Summary:
  127. //     Call this member to set the width and height of the dialog bar child window.
  128. // Parameters:
  129. //     sz - The width and height of the dialog bar's child window.
  130. // Remarks:
  131. //     The size is only used to size the child window when the dialog
  132. //     bar is floating, then both the specified width and height are used.
  133. //     If the bar is dock on the left or right, only the width is used,
  134. //     the height will depend on how much of the client area the dialog bar
  135. //     can occupy.  If the bar is docked on the top or bottom, then only
  136. //     the height is used to size the child window.
  137. //-----------------------------------------------------------------------
  138. void SetSize(CSize sz);
  139. //-----------------------------------------------------------------------
  140. // Summary:
  141. //     Call this member function to get child pane state.
  142. // Returns:
  143. //     TRUE if a child pane is active.
  144. //-----------------------------------------------------------------------
  145. BOOL IsActive() const;
  146. protected:
  147. //-----------------------------------------------------------------------
  148. // Summary:
  149. //     This method calculates the dimensions of a toolbar.
  150. // Parameters:
  151. //     nLength - Length of the bar.
  152. //     dwMode - Mode to dock.
  153. //     nWidth - Width of the bar.
  154. // Returns:
  155. //     Size of the docked toolbar.
  156. //-----------------------------------------------------------------------
  157. CSize CalcDockingLayout(int nLength, DWORD dwMode, int nWidth);
  158. //-----------------------------------------------------------------------
  159. // Summary:
  160. //     This method calculates the dimensions of a toolbar.
  161. // Parameters:
  162. //     nLength - The requested dimension of the control bar, either horizontal or vertical, depending on dwMode.
  163. //      dwMode - see CControlBar::CalcDynamicLayout for list of supported flags.
  164. // Returns:
  165. //     Size of the docked toolbar.
  166. //-----------------------------------------------------------------------
  167. CSize CalcDynamicLayout(int nLength, DWORD dwMode);
  168. //-----------------------------------------------------------------------
  169. // Summary:
  170. //     Call this member function to determine if the CommandBar is a
  171. //     CXTPDialogBar.
  172. // Remarks:
  173. //     This will always return TRUE.
  174. // Returns:
  175. //     Returns TRUE if the CommandBar is a CXTPDialogBar, otherwise FALSE.
  176. //-----------------------------------------------------------------------
  177. BOOL IsDialogBar() const;
  178. //-----------------------------------------------------------------------
  179. // Summary:
  180. //     This method is called when user resize dialog bar.
  181. // Parameters:
  182. //     rcWindow - CRect object specifying the size of the window.
  183. //     nHitTest - Specifies the hit-test area code.
  184. //-----------------------------------------------------------------------
  185. void OnResize(CRect rcWindow, int nHitTest);
  186. //-----------------------------------------------------------------------
  187. // Summary:
  188. //     This method calculates the dimensions of a dialog bar.
  189. // Parameters:
  190. //     nLength - Length of the bar.
  191. //     dwMode - Mode to dock.
  192. //     szClient - Client size of dialog bar
  193. // Returns:
  194. //     Size of the dialog bar.
  195. //-----------------------------------------------------------------------
  196. CSize CalcSize(int nLength, DWORD dwMode, CSize szClient);
  197. //-----------------------------------------------------------------------
  198. // Summary:
  199. //     This method is called to determine mouse hit code
  200. // Parameters:
  201. //     pt - Position to test
  202. // Returns:
  203. //     HTCLIENT if pointer belongs client area; HTNOWHERE otherwise.
  204. //-----------------------------------------------------------------------
  205. int OnMouseHitTest(CPoint pt);
  206. //-----------------------------------------------------------------------
  207. // Summary:
  208. //     Retrieves client margins of dialog bar.
  209. // Returns:
  210. //     Rectangle contained top, left, right, bottom margins of dialog bar.
  211. //-----------------------------------------------------------------------
  212. CRect GetMargins();
  213. //-----------------------------------------------------------------------
  214. // Summary:
  215. //     This method is called to reposition child window in dialog bar.
  216. // Parameters:
  217. //     rc - CRect object specifying size of area.
  218. //-----------------------------------------------------------------------
  219. void MoveChildWindow(CRect rc);
  220. protected:
  221. //{{AFX_CODEJOCK_PRIVATE
  222. DECLARE_MESSAGE_MAP()
  223. //{{AFX_MSG(CXTPDialogBar)
  224. afx_msg LRESULT OnNcHitTest(CPoint point);
  225. afx_msg void OnSize(UINT nType, int cx, int cy);
  226. afx_msg LRESULT OnIdleUpdateCmdUI(WPARAM wParam, LPARAM lParam);
  227. //}}AFX_MSG
  228. //}}AFX_CODEJOCK_PRIVATE
  229. protected:
  230. CRect m_rcBorders;          // Borders size.
  231. BOOL m_bResizable;          // TRUE if the child window and dialog bar are re-sizable.
  232. CSize m_szMinTrackRect;     // Minimum tracking rectangle
  233. BOOL m_bCaptionVisible;     // TRUE if the caption popup control is visible.
  234. BOOL m_bCaptionPopup;       // TRUE to use caption as popup control.
  235. int m_nCaptionHeight;       // Caption height.
  236. CSize m_szDockingClient;    // Docking client rectangle
  237. CSize m_szFloatingClient;   // Floating client rectangle
  238. HWND m_hwndChild;           // Child window handle.
  239. CString m_strCaption;       // Text that is displayed in the caption popup control.
  240. CXTPPopupBar* m_pPopupBar;  // Pointer to caption popup bar.
  241. BOOL m_bActive;             // TRUE if dialog bar has active caption
  242. protected:
  243. DECLARE_XTP_COMMANDBAR(CXTPDialogBar)
  244. friend class CXTPToolBar;
  245. friend class CXTPDockContext;
  246. };
  247. /////////////////////////////////////////////////////////////////////////////
  248. AFX_INLINE BOOL CXTPDialogBar::IsDialogBar() const {
  249. return TRUE;
  250. }
  251. AFX_INLINE CXTPPopupBar* CXTPDialogBar::GetCaptionPopup() const {
  252. return m_pPopupBar;
  253. }
  254. AFX_INLINE void CXTPDialogBar::SetResizable(BOOL bResizable) {
  255. m_bResizable = bResizable;
  256. }
  257. AFX_INLINE BOOL CXTPDialogBar::IsActive() const {
  258. return m_bActive;
  259. }
  260. #endif  //#if !defined(__XTPDIALOGBAR_H__)