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

对话框与窗口

开发平台:

Visual C++

  1. // XTPDockBar.h : interface for the CXTPDockBar 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(__XTPDOCKBAR_H__)
  22. #define __XTPDOCKBAR_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER >= 1000
  25. #pragma once
  26. #endif // _MSC_VER >= 1000
  27. #include "XTPCommandBarsDefines.h"
  28. class CXTPToolBar;
  29. class CXTPCommandBars;
  30. //===========================================================================
  31. // Summary:
  32. //     CXTPDockBar is a CWnd derived class. It is used internally by
  33. //     CXTPCommandBars.
  34. //===========================================================================
  35. class _XTP_EXT_CLASS CXTPDockBar : public CWnd
  36. {
  37. private:
  38. DECLARE_DYNCREATE(CXTPDockBar)
  39. public:
  40. //-----------------------------------------------------------------------
  41. // Summary:
  42. //     Array of CXTPToolBar objects.
  43. //-----------------------------------------------------------------------
  44. typedef CArray<CXTPToolBar*, CXTPToolBar*> CToolBarArray;
  45. private:
  46. class CDockInfoArray;
  47. struct DOCK_INFO;
  48. public:
  49. //-----------------------------------------------------------------------
  50. // Summary:
  51. //     Constructs a CXTPDockBar object
  52. //-----------------------------------------------------------------------
  53. CXTPDockBar();
  54. //-----------------------------------------------------------------------
  55. // Summary:
  56. //     Destroys a CXTPDockBar object, handles cleanup and deallocation.
  57. //-----------------------------------------------------------------------
  58. virtual ~CXTPDockBar();
  59. public:
  60. //-----------------------------------------------------------------------
  61. // Summary:
  62. //     Retrieves the dockbar position.
  63. // Returns:
  64. //     Position of the dock bar.
  65. //-----------------------------------------------------------------------
  66. XTPBarPosition GetPosition() const;
  67. //-----------------------------------------------------------------------
  68. // Summary:
  69. //     Checks if dockbar is vertical.
  70. // Returns:
  71. //     TRUE if docked vertically; otherwise returns FALSE
  72. //-----------------------------------------------------------------------
  73. BOOL IsVerticalPosition() const;
  74. protected:
  75. //{{AFX_CODEJOCK_PRIVATE
  76. // Implementation
  77. BOOL RemoveCommandBar(CXTPToolBar* pBar, int nPosExclude = -1);
  78. BOOL Create(CWnd* pParentWnd, DWORD dwStyle, UINT nID);
  79. BOOL PreCreateWindow(CREATESTRUCT& cs);
  80. BOOL DockCommandBar(CXTPToolBar* bBar);
  81. void DockCommandBar(CXTPToolBar* pBar, LPCRECT lpRect);
  82. CXTPToolBar* GetDockedCommandBar(int nPos) const;
  83. int GetDockedCount() const;
  84. int GetDockedVisibleCount() const;
  85. int FindBar(CXTPToolBar* pBar, int nPosExclude = -1);
  86. int Insert(CXTPToolBar* pBarIns, CRect rect, CPoint ptMid);
  87. void GetVisibleToolbars(int nPos, CToolBarArray& arrBars);
  88. void AdjustStretchBars();
  89. int AdjustRow(CToolBarArray&, CPoint pt, int nLength, BOOL bHorz, AFX_SIZEPARENTPARAMS* lpLayout);
  90. int _AdjustRow(CToolBarArray&, CPoint pt, int nLength, BOOL bHorz, AFX_SIZEPARENTPARAMS* lpLayout, int& nRemove);
  91. int _GetMode(BOOL bHorz, CXTPToolBar* pBar);
  92. CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz, AFX_SIZEPARENTPARAMS* lpLayout);
  93. CSize CalcDynamicLayout(int, DWORD nMode, AFX_SIZEPARENTPARAMS* lpLayout);
  94. //}}AFX_CODEJOCK_PRIVATE
  95. protected:
  96. //{{AFX_CODEJOCK_PRIVATE
  97. //{{AFX_MSG(CXTPDockBar)
  98. DECLARE_MESSAGE_MAP()
  99. afx_msg void OnPaint();
  100. afx_msg LRESULT OnPrintClient(WPARAM wParam, LPARAM);
  101. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  102. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  103. afx_msg LRESULT OnSizeParent(WPARAM, LPARAM lParam);
  104. afx_msg LRESULT OnNcHitTest(CPoint /*point*/);
  105. //}}AFX_MSG
  106. //}}AFX_CODEJOCK_PRIVATE
  107. private:
  108. BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL);
  109. protected:
  110. DWORD m_dwStyle;                        // Style of the control.
  111. CToolBarArray m_arrBars;                // Toolbar list
  112. CXTPCommandBars* m_pCommandBars;        // Parent CommandBars object
  113. friend class CXTPToolBar;
  114. friend class CXTPCommandBars;
  115. friend class CXTPReBar;
  116. };
  117. AFX_INLINE BOOL CXTPDockBar::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) {
  118. return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  119. }
  120. #endif // #if !defined(__XTPDOCKBAR_H__)