GuiDockToolBarEx.h
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. #pragma once
  2. #include "GuiControlBar.h"
  3. static CFont m_fontHorzMenu, m_fontVertMenu;
  4. static int _cyHorzFont, _cyMenuOnBar, _cyTextMargin;
  5. const int CXTEXTMARGIN = 5;
  6. static BOOL InitGlobalFont()
  7. {
  8. if (m_fontHorzMenu.GetSafeHandle() != NULL &&  m_fontVertMenu.GetSafeHandle() != NULL)
  9. return TRUE;
  10. m_fontHorzMenu.DeleteObject();
  11. m_fontVertMenu.DeleteObject();
  12. // create fonts
  13. NONCLIENTMETRICS info; info.cbSize = sizeof(info);
  14. ::SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(info), &info, 0);
  15. if(!m_fontHorzMenu.CreateFontIndirect(&info.lfMenuFont))
  16. return FALSE;
  17. // create vertical font
  18. info.lfMenuFont.lfEscapement = -900;
  19. info.lfMenuFont.lfOrientation = -900;
  20. strcpy(info.lfMenuFont.lfFaceName,"verdana");
  21. if(!m_fontVertMenu.CreateFontIndirect(&info.lfMenuFont))
  22. return FALSE;
  23. _cyHorzFont = abs(info.lfMenuFont.lfHeight);
  24. // calc Y text margin
  25. _cyMenuOnBar = info.iMenuHeight;
  26. _cyMenuOnBar = max(_cyMenuOnBar, ::GetSystemMetrics(SM_CYSMICON));
  27. _cyTextMargin = (_cyMenuOnBar - _cyHorzFont) / 2;
  28. return TRUE;
  29. }
  30. class CDockButton : public CWnd
  31. {
  32. // Construction
  33. public:
  34. CDockButton();
  35. protected:
  36. CRect   rect;
  37. CString m_Caption;
  38. UINT m_nDockBarAling;
  39. HWND m_hWnd;
  40. BOOL m_bMouseOver;
  41. HICON m_hIcon;
  42. CSize   m_szBtn;
  43. // Attributes
  44. public:
  45. void SetRect(CRect rc=CRect(0,0,0,0))
  46. {
  47. rect=rc;
  48. }
  49. HWND  GethWnd() {return m_hWnd; }
  50. CGuiControlBar* GetBar(HWND hWnd);
  51. CGuiControlBar* IsControlVisible(CGuiControlBar*);
  52. void DrawTextHorz(CDC* pDC, CRect m_rect);
  53. void DrawTextVert(CDC* pDC, CRect m_rect);
  54. CString GetString(){ return m_Caption;}
  55. UINT GetAling() {return m_nDockBarAling;}
  56. void SetIconBtn(HICON hIcon); 
  57. CSize GetSizeIconBtn()
  58. {
  59. if(m_hIcon != NULL)
  60. return m_szBtn;
  61. return CSize(0,0);
  62. // Operations
  63. public:
  64. // Overrides
  65. // ClassWizard generated virtual function overrides
  66. //{{AFX_VIRTUAL(CDockButton)
  67. public:
  68. virtual BOOL Create(LPCTSTR lpszWindowName,DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, HWND m_hWnd);
  69. //}}AFX_VIRTUAL
  70. // Implementation
  71. public:
  72. virtual ~CDockButton();
  73. // Generated message map functions
  74. protected:
  75. //{{AFX_MSG(CDockButton)
  76. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  77. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  78. afx_msg void OnPaint();
  79. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  80. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  81. afx_msg void OnKillFocus(CWnd* pNewWnd);
  82. afx_msg void OnTimer(UINT nIDEvent);
  83. afx_msg void OnDestroy();
  84. //}}AFX_MSG
  85. DECLARE_MESSAGE_MAP()
  86. };
  87. class GUILIBDLLEXPORT CGuiDockToolBarEx : public CControlBar
  88. {
  89. // Construction
  90. public:
  91. CGuiDockToolBarEx();
  92. // Attributes
  93. public:
  94. // Operations
  95. public:
  96. int n_numBars;
  97. CPtrArray m_ArrayButton;
  98. // Overrides
  99. // ClassWizard generated virtual function overrides
  100. //{{AFX_VIRTUAL(CGuiDockToolBar)
  101. public:
  102. virtual BOOL Create(CWnd* pParentWnd, DWORD dwAling);
  103. //}}AFX_VIRTUAL
  104. // Implementation
  105. public:
  106. virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);
  107. virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
  108. virtual ~CGuiDockToolBarEx();
  109. void AddToolBars(CGuiControlBar* m_ctrlBars);
  110. void DeleteToolBars(CGuiControlBar* m_ctrlBars);
  111. void UpdateBars();
  112. void CalcButton();
  113. virtual int GetCount(){return n_numBars;}
  114. CGuiControlBar* GetBar(int );
  115. // Generated message map functions
  116. protected:
  117. int      m_Size;
  118. COLORREF m_clrface;
  119. protected:
  120. //{{AFX_MSG(CGuiDockToolBarEx)
  121. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  122. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  123. afx_msg void OnPaint();
  124. afx_msg void OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp);
  125. afx_msg void OnSysColorChange();
  126. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  127. afx_msg void OnTimer(UINT nIDEvent);
  128. afx_msg void OnDestroy();
  129. //}}AFX_MSG
  130. DECLARE_MESSAGE_MAP()
  131. };