ReBarCtrl.h
上传用户:xywutai
上传日期:2007-01-02
资源大小:72k
文件大小:5k
源码类别:

工具条

开发平台:

Visual C++

  1. #ifndef __RBCTL_H__
  2. #define __RBCTL_H__
  3. #ifndef __AFXWIN_H__
  4.   #include <afxwin.h>
  5. #endif
  6. #ifndef __AFXDISP_H__
  7.   #include <afxdisp.h>
  8. #endif
  9. /////////////////////////////////////////////////////////////////////////////
  10.   class CImageList;
  11.   class CToolTipCtrl;
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CReBarCtrl
  14. class CReBarCtrl : public CWnd
  15. {
  16.   DECLARE_DYNAMIC(CReBarCtrl)
  17. // Construction
  18. public:
  19.   CReBarCtrl();
  20.   BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);
  21.   
  22. // Attributes
  23. public:
  24.   UINT GetBandCount() const
  25.   { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, RB_GETBANDCOUNT, 0, 0L); }
  26.   BOOL GetBandInfo(UINT uBand, REBARBANDINFO* prbbi) const
  27.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_GETBANDINFO, uBand, (LPARAM)prbbi); }
  28.   UINT GetBarHeight() const
  29.   { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, RB_GETBARHEIGHT, 0, 0L); }
  30.   BOOL GetBarInfo(REBARINFO* prbi) const
  31.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_GETBARINFO, 0, (LPARAM)prbi); }
  32.   COLORREF GetBkColor() const
  33.   { ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, RB_GETBKCOLOR, 0, 0L); }
  34.   IDropTarget* GetDropTarget() const
  35.   { ASSERT(::IsWindow(m_hWnd)); IDropTarget* pdt; ::SendMessage(m_hWnd, RB_GETDROPTARGET, 0, (LPARAM)&pdt); return pdt; }
  36.   BOOL GetRect(UINT uBand, LPRECT prc) const
  37.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_GETRECT, uBand, (LPARAM)prc); }
  38.   UINT GetRowCount() const
  39.   { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, RB_GETROWCOUNT, 0, 0L); }
  40.   UINT GetRowHeight(UINT uRow) const
  41.   { ASSERT(::IsWindow(m_hWnd)); return (UINT) ::SendMessage(m_hWnd, RB_GETROWHEIGHT, uRow, 0L); }
  42.   COLORREF GetTextColor() const
  43.   { ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, RB_GETTEXTCOLOR, 0, 0L); }
  44.   CToolTipCtrl* GetToolTips() const
  45.   { ASSERT(::IsWindow(m_hWnd)); return (CToolTipCtrl*)CWnd::FromHandle((HWND)::SendMessage(m_hWnd, RB_GETTOOLTIPS, 0, 0L)); }
  46.   int IDToIndex(UINT uBandID) const
  47.   { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, RB_IDTOINDEX, uBandID, 0L); }
  48.   BOOL SetBandInfo(UINT uBand, REBARBANDINFO* prbbi)
  49.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_SETBANDINFO, uBand, (LPARAM)prbbi); }
  50.   BOOL SetBarInfo(REBARINFO* prbi)
  51.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_SETBARINFO, 0, (LPARAM)prbi); }
  52.   COLORREF SetBkColor(COLORREF clr)
  53.   { ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, RB_SETBKCOLOR, 0, (LPARAM)clr); }
  54.   CWnd* SetOwner(CWnd* pWnd)
  55.   { ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle((HWND)::SendMessage(m_hWnd, RB_SETPARENT, (WPARAM)pWnd->m_hWnd, 0L)); }
  56.   COLORREF SetTextColor(COLORREF clr)
  57.   { ASSERT(::IsWindow(m_hWnd)); return (COLORREF) ::SendMessage(m_hWnd, RB_SETTEXTCOLOR, 0, (LPARAM)clr); }
  58.   void SetToolTips(CToolTipCtrl* pToolTip)
  59.   { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, RB_SETTOOLTIPS, (WPARAM)pToolTip->m_hWnd, 0L); }
  60.   CImageList* GetImageList() const;
  61.   BOOL SetImageList(CImageList* pImageList);
  62.   void GetBandBorders(UINT uBand, LPRECT prc) const
  63.   { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, RB_GETBANDBORDERS, uBand, (LPARAM)prc); }
  64.   CPalette* GetPalette() const
  65.   { ASSERT(::IsWindow(m_hWnd)); return CPalette::FromHandle((HPALETTE)::SendMessage(m_hWnd, RB_GETPALETTE, 0, 0L)); }
  66.   CPalette* SetPalette(HPALETTE hPal)
  67.   { ASSERT(::IsWindow(m_hWnd)); return CPalette::FromHandle((HPALETTE)::SendMessage(m_hWnd, RB_SETPALETTE, 0, (LPARAM)hPal)); }
  68.   BOOL GetColorScheme(COLORSCHEME* lpcs);
  69.   void SetColorScheme(const COLORSCHEME* lpcs);
  70.   
  71. // Operations
  72. public:
  73.   void BeginDrag(UINT uBand, DWORD dwPos = (DWORD)-1)
  74.   { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, RB_BEGINDRAG, uBand, dwPos); }
  75.   BOOL DeleteBand(UINT uBand)
  76.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_DELETEBAND, uBand, 0L); }
  77.   void DragMove(DWORD dwPos = (DWORD)-1)
  78.   { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, RB_DRAGMOVE, 0, dwPos); }
  79.   void EndDrag()
  80.   { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, RB_ENDDRAG, 0, 0L); }
  81.   int HitTest(RBHITTESTINFO* prbht)
  82.   { ASSERT(::IsWindow(m_hWnd)); return (int) ::SendMessage(m_hWnd, RB_HITTEST, 0, (LPARAM)prbht); }
  83.   BOOL InsertBand(UINT uIndex, REBARBANDINFO* prbbi)
  84.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_INSERTBAND, uIndex, (LPARAM)prbbi); }
  85.   void MaximizeBand(UINT uBand)
  86.   { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, RB_MAXIMIZEBAND, uBand, 0L); }
  87.   void MinimizeBand(UINT uBand)
  88.   { ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, RB_MINIMIZEBAND, uBand, 0L); }
  89.   BOOL ShowBand(UINT uBand, BOOL fShow = TRUE)
  90.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_SHOWBAND, uBand, fShow); }
  91.   BOOL SizeToRect(CRect& rect)
  92.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_SIZETORECT, 0, (LPARAM)&rect); }
  93.   BOOL MoveBand(UINT uFrom, UINT uTo)
  94.   { ASSERT(::IsWindow(m_hWnd)); return (BOOL) ::SendMessage(m_hWnd, RB_MOVEBAND, uFrom, uTo); }
  95. };
  96. #endif //__RBCTL_H__
  97. /////////////////////////////////////////////////////////////////////////////