MPCStatusBar.h
上传用户:rubberdam
上传日期:2007-01-10
资源大小:43k
文件大小:2k
源码类别:

状态条

开发平台:

Visual C++

  1. //
  2. // MPCStatusBar.cpp
  3. // 
  4. // (c) Pierre MELLINAND
  5. //
  6. // History
  7. // --------
  8. // v 1.0
  9. // June 1998: Created classes with names starting with XFX...
  10. // v 1.1
  11. // October 19, 1999 void MPCStatusBar::RemovePane(int nPaneID) added
  12. // BOOL MPCStatusBar::AddIndicator( int position, UINT paneID ) 
  13. // corrected bug (std text disappeared when AddIndicator called)
  14. // BOOL MPCStatusBar::GetStatusPane(int nIndex, MPCStatusBarPane & xfxpane)
  15. // GetPaneText( ) wasnt called
  16. // Renamed classes with prefix MPC..
  17. // Added parameter 'BOOL bAutodeleteControl' to method AddControl()
  18. //
  19. #ifndef MPCStatusBar_h_
  20. #define MPCStatusBar_h_
  21. #include <afxtempl.h>
  22. ///////////////////////////////////////////////////////////////////////////////////
  23. // MPCStatusBarPaneControlInfo
  24. class MPCStatusBarPaneControlInfo:public CObject
  25. {
  26. DECLARE_DYNCREATE(MPCStatusBarPaneControlInfo)
  27. public:
  28. CWnd * m_hWnd;
  29. int m_nPaneID;
  30. BOOL m_bAutodelete;
  31. MPCStatusBarPaneControlInfo();
  32. };
  33. ///////////////////////////////////////////////////////////////////////////////////
  34. // MPCStatusBarPaneControlInfo
  35. class MPCStatusBarPane: public CObject
  36. {
  37. public:
  38. UINT nID;
  39. int cxText;
  40. UINT nStyle;
  41. UINT nFlags;
  42. CString strText;
  43. MPCStatusBarPane ( MPCStatusBarPane & xfxpane );
  44. MPCStatusBarPane& operator=(MPCStatusBarPane& xfxpane);
  45. MPCStatusBarPane();
  46. } ;
  47. ///////////////////////////////////////////////////////////////////////////////////
  48. // MPCStatusBar
  49. class MPCStatusBar:public CStatusBar
  50. {
  51. DECLARE_DYNCREATE(MPCStatusBar)
  52. private:
  53. CArray<MPCStatusBarPaneControlInfo*, MPCStatusBarPaneControlInfo*> m_aPans;
  54. public:
  55. void PositionControls();
  56. ~MPCStatusBar();
  57. MPCStatusBarPaneControlInfo * GetPanControl(int nPaneID);
  58. BOOL AddControl(CWnd * pWnd, int nPaneID, BOOL bAutodeleteControl = TRUE );
  59. void SetPaneWidth(int index, int cxWidth);
  60. BOOL AddIndicator( int position, UINT paneID);
  61. BOOL GetStatusPane(int nIndex, MPCStatusBarPane & xfxpane);
  62. void RemovePane(int nPaneID);
  63. //{{AFX_MSG(MPCStatusPane)
  64. afx_msg void OnSize(UINT nType, int cx, int cy);
  65. //}}AFX_MSG
  66. DECLARE_MESSAGE_MAP()
  67. };
  68. #endif