COOLBAR.H
上传用户:gzfeiyu199
上传日期:2021-09-15
资源大小:68k
文件大小:3k
源码类别:

编辑框

开发平台:

Visual C++

  1. ////////////////////////////////////////////////////////////////
  2. // CCoolBar 1997 Microsoft Systems Journal. 
  3. // If this program works, it was written by Paul DiLascia.
  4. // If not, I don't know who wrote it.
  5. // Compiles with Visual C++ 5.0 on Windows 95
  6. #if !defined(COOLBAR_H_INCLUDED)
  7. #define COOLBAR_H_INCLUDED
  8. #if _MSC_VER >= 1000
  9. #pragma once
  10. #endif // _MSC_VER >= 1000
  11. //////////////////
  12. // CCoolBar encapsulates IE 4.0 common coolbar for MFC.
  13. //
  14. class CLASS_EXPORT CCoolBar : public CControlBar {
  15. protected:
  16. DECLARE_DYNAMIC(CCoolBar)
  17. public:
  18. CCoolBar();
  19. virtual ~CCoolBar();
  20. BOOL Create(CWnd* pParentWnd, DWORD dwStyle,
  21. DWORD dwAfxBarStyle = CBRS_ALIGN_TOP,
  22. UINT nID = AFX_IDW_TOOLBAR);
  23. // Message wrappers
  24. BOOL GetBarInfo(LPREBARINFO lp)
  25. { ASSERT(::IsWindow(m_hWnd));
  26.   return (BOOL)SendMessage(RB_GETBARINFO, 0, (LPARAM)lp); }
  27. BOOL SetBarInfo(LPREBARINFO lp)
  28. { ASSERT(::IsWindow(m_hWnd));
  29.   return (BOOL)SendMessage(RB_SETBARINFO, 0, (LPARAM)lp); }
  30. BOOL GetBandInfo(int iBand, LPREBARBANDINFO lp)
  31. { ASSERT(::IsWindow(m_hWnd));
  32.   return (BOOL)SendMessage(RB_GETBANDINFO, iBand, (LPARAM)lp); }
  33. BOOL SetBandInfo(int iBand, LPREBARBANDINFO lp)
  34. { ASSERT(::IsWindow(m_hWnd));
  35.   return (BOOL)SendMessage(RB_SETBANDINFO, iBand, (LPARAM)lp); }
  36. BOOL InsertBand(int iWhere, LPREBARBANDINFO lp)
  37. { ASSERT(::IsWindow(m_hWnd));
  38.   return (BOOL)SendMessage(RB_INSERTBAND, (WPARAM)iWhere, (LPARAM)lp); }
  39. BOOL DeleteBand(int nWhich)
  40. { ASSERT(::IsWindow(m_hWnd));
  41.   return (BOOL)SendMessage(RB_INSERTBAND, (WPARAM)nWhich); }
  42. int GetBandCount()
  43. { ASSERT(::IsWindow(m_hWnd));
  44.   return (int)SendMessage(RB_GETBANDCOUNT); }
  45. int GetRowCount()
  46. { ASSERT(::IsWindow(m_hWnd));
  47.      return (int)SendMessage(RB_GETROWCOUNT); }
  48. int GetRowHeight(int nWhich)
  49. { ASSERT(::IsWindow(m_hWnd));
  50.      return (int)SendMessage(RB_GETROWHEIGHT, (WPARAM)nWhich); }
  51. // Overrides
  52.     // ClassWizard generated virtual function overrides
  53.     //{{AFX_VIRTUAL(CCoolBar)
  54. protected:
  55. // new virtual functions you must/can override
  56. virtual BOOL OnCreateBands() = 0; // return -1 if failed
  57. virtual void OnHeightChange(const CRect& rcNew);
  58. // CControlBar Overrides
  59. virtual CSize CalcFixedLayout(BOOL bStretch, BOOL bHorz);
  60. virtual CSize CalcDynamicLayout(int nLength, DWORD nMode);
  61. virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler);
  62.     //}}AFX_VIRTUAL
  63.     // Generated message map functions
  64. protected:
  65.     //{{AFX_MSG(CCoolBar)
  66. afx_msg int  OnCreate(LPCREATESTRUCT lpcs);
  67. afx_msg void OnPaint();
  68. afx_msg void OnHeigtChange(NMHDR* pNMHDR, LRESULT* pRes);
  69. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  70.     //}}AFX_MSG
  71. DECLARE_MESSAGE_MAP()
  72. };
  73. //////////////////
  74. // Programmer-friendly REBARBANDINFO initializes itself
  75. //
  76. class CLASS_EXPORT CRebarBandInfo : public REBARBANDINFO {
  77. public:
  78. CRebarBandInfo() {
  79. memset(this, 0, sizeof(REBARBANDINFO));
  80. cbSize = sizeof(REBARBANDINFO);
  81. // *** Kirk Stowell
  82. fMask   = RBBIM_STYLE|RBBIM_CHILD|RBBIM_CHILDSIZE|RBBIM_BACKGROUND|RBBIM_COLORS;
  83. fStyle  = RBBS_FIXEDBMP;
  84. clrFore = GetSysColor(COLOR_BTNTEXT);
  85. clrBack = GetSysColor(COLOR_BTNFACE);
  86. }
  87. };
  88. #endif