GuiControlBar.h
上传用户:zhanglf88
上传日期:2013-11-19
资源大小:6036k
文件大小:5k
源码类别:

金融证券系统

开发平台:

Visual C++

  1. //-----------------------------------------------------------------------//
  2. // This is a part of the GuiLib MFC Extention.  //
  3. // Autor  :  Francisco Campos  //
  4. // (C) 2002 Francisco Campos <www.beyondata.com> All rights reserved     //
  5. // This code is provided "as is", with absolutely no warranty expressed  //
  6. // or implied. Any use is at your own risk.  //
  7. // You must obtain the author's consent before you can include this code //
  8. // in a software library.  //
  9. // If the source code in  this file is used in any application  //
  10. // then acknowledgement must be made to the author of this program  //
  11. // fcampos@tutopia.com  //
  12. //-----------------------------------------------------------------------//
  13. #pragma once
  14. #include "afxext.h"
  15. #include "afxPriv.h"
  16. #include "GuiLib.h"
  17. //#include "GuiToolButton.h"
  18. #define NORMAL 0
  19. #define OVER   1
  20. #define PRESS  2
  21. class GUILIBDLLEXPORT CGuiControlBarButton 
  22. {
  23. public:
  24. enum GuiType
  25. {
  26. GUINORMAL=0,
  27. GUITOOLBUTTON
  28. };
  29. CRect rcArea;
  30. protected:
  31. int m_nIcon;
  32. LPCTSTR m_lpMsg;
  33. CImageList m_imgList;
  34. GuiType bTypeButton;
  35. BOOL m_bEnabled;
  36. CToolTipCtrl   m_toolTip;
  37. public:
  38. CGuiControlBarButton();
  39. void SetData(int nIcon,LPCTSTR lpMsg);
  40. ~CGuiControlBarButton();
  41. void Paint(CDC* pDC,int st,CRect rc,COLORREF clrFondo);
  42. void SetImageList(UINT nBitmapID, int cx, int nGrow, COLORREF crMask);
  43. void SetTypeButton(GuiType bTypeb=GUINORMAL);
  44. void SetEnabled(BOOL bEnabled);
  45. };
  46. class GUILIBDLLEXPORT   CGuiControlBar : public CControlBar
  47. {
  48. DECLARE_DYNAMIC(CGuiControlBar)
  49. protected:
  50. int nGapGripper;
  51. UINT nDockBarAling;
  52. CSize m_sizeMinFloating;
  53. CSize m_sizeHorz;
  54. CSize m_sizeVert;
  55. CSize m_sizeHorzt;
  56. CSize m_sizeVertt;
  57. CSize m_sizeMinV;
  58. CSize m_sizeMinH;
  59. int m_pos;
  60. int m_Last;
  61. int m_First;
  62. CRect m_rcBorder;
  63. CRect m_rcOldBorder;
  64. BOOL m_bTracking;
  65. UINT m_SideMove;  //Que lado se arrastra
  66. CPoint m_ptOld; //la ultima posicion del mouse
  67. BOOL m_Initialize; // es cierto si no se ha inicializado esta ventana
  68. CPoint m_ptPos;
  69. CPoint m_ptStartPos;
  70. CPoint m_ptActualPos;
  71. UINT m_Orient;
  72. BOOL m_bForcepaint;
  73. CGuiControlBarButton m_CloseBtn; //arreglo de botones para control de la barra
  74. CRect m_rcCloseBtn;
  75. int m_stateBtn;
  76. COLORREF m_clrFondo; //para el color de fondo de la barra
  77. CImageList m_img;
  78. public:
  79. virtual void DrawGripper(CDC* pDC,CRect* rc);
  80. BOOL IsLegal(UINT uAlin);
  81. CGuiControlBar* GetGuiControlBar(int nPos,BOOL bAll=FALSE) const;
  82. void AjustReDinSize(CPoint cp);
  83. void OnActiveWindow();
  84. void SetEqualWidth();
  85. int GetHiWid();
  86. int GetWidthMax();
  87. int  GetFirstPos();
  88. int  GetLastPos();
  89.     BOOL IsLeft();
  90. BOOL IsRight();
  91. BOOL IsTop();
  92. BOOL IsBottom();
  93. BOOL IsVert();
  94. BOOL IsHorz();
  95. BOOL IsFloating();
  96. void OnInvertTracker(const CRect& rect);
  97. void RecalWindowPos();
  98. void AjustVert(BOOL bGrow,int nDif);
  99. void AjustHorz(BOOL bGrow,int nDif);
  100. CRect GetDockRect();
  101. void ActiveCaption();
  102. void SetColorFondo(COLORREF clrFondo);
  103. //esta funcion permite soportar multiples vistas
  104. void SetSupporMultiView(BOOL bMultiView=TRUE){ m_bSupportMultiView=bMultiView;}
  105. BOOL m_bSupportMultiView;
  106. protected:
  107. BOOL m_bActive; //esta ventana tiene el foco
  108. BOOL m_bOldActive;
  109. public:
  110. CGuiControlBar();
  111. virtual ~CGuiControlBar();
  112. virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);
  113. virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
  114. virtual CSize CalcDynamicLayout(int nLength, DWORD nMode);
  115. virtual BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,CWnd* pParentWnd, UINT nID);
  116. void OnShowTitle();
  117. protected:
  118. DECLARE_MESSAGE_MAP()
  119. public:
  120. afx_msg virtual int OnCreate(LPCREATESTRUCT lpCreateStruct);
  121. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  122. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  123. afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
  124. afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point);
  125. afx_msg void OnNcPaint();
  126. afx_msg void OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS*);
  127. afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos);
  128. afx_msg void OnPaint();
  129. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  130. afx_msg void OnNcLButtonDblClk(UINT nFlags, CPoint point);
  131. afx_msg UINT OnNcHitTest(CPoint point);
  132. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  133. afx_msg void OnMouseMove( UINT, CPoint );
  134. afx_msg void OnSize(UINT nType, int cx, int cy);
  135. afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point);
  136. afx_msg void OnTimer(UINT nIDEvent);
  137. afx_msg void OnSysColorChange( );
  138. };