TabedReBar Control






4.69/5 (10 votes)
ReBar control which displays bars via tab panes.
Overview
This article implements TabedReBar
control similar to CReBar
which displays bars via Tab control. The main propose of the TabedReBar
control is reducing space of the MainFrame window by collecting several bars in one TabedReBar
. Each bar (ToolBar, StatusBar, DialogBar etc.) added in TabedReBar
is separated by a Tab.
Class CBHTabedReBar
The CBHTabedReBar
is derived from CControlBar
and contains the following methods and data members:
Methods
void DrawGripper(CDC* pDC); //Draws griper on left side of the control BOOL AddBar(CControlBar*pBar,LPCTSTR pszText = NULL);//Add Bars to TabedReBar CTabCtrl& GetTabCtrl() const; // access the tab control //{{AFX_MSG(CBHTabedReBar) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnTabSelChange(NMHDR* pNMHDR, LRESULT* pResult) ; afx_msg void OnWindowPosChanged(WINDOWPOS* lpwndpos); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point); //}}AFX_MSG //{{AFX_VIRTUAL(CBHTabedReBar) virtual void OnUpdateCmdUI(CFrameWnd* pTarget, BOOL bDisableIfNoHndler); virtual BOOL Create( CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP, UINT nID = AFX_IDW_TABED_REBAR); virtual CSize CalcFixedLayout( BOOL bStretch, BOOL bHorz ); virtual void DoPaint(CDC* pDC); // overriden virtual member //{{AFX_VIRTUAL
Members
int m_nToobBarHeight;//height of tab int m_nActiveTab; // currently active tab CRect m_rectClient; // rect of the tab control CList <TCB_ITEM *,TCB_ITEM *> m_Bars; // list of derived ControlBars CTabCtrl m_tabctrl; // Tab Control
Implementation
CBHTabedReBar
class supports docking (top, bottom from now) and floating features. Define CBHTabedReBar
class object on the same way as you define CReBar
.
In MainFrm.h, declare variable CBHTabedReBar
:
CBHTabedReBar m_wndTabedReBar;
In MainFrm.cpp, in OnCreate
message member after creation of ToolBars, DialogBar etc., add code similar to this:
int CMainFrame:: OnCreate(LPCREATESTRUCT lpCreateStruct) { //................ //Here comes standard creation code //Creation code for CBHTabedReBar control m_wndTabedReBar.Create(this); m_wndTabedReBar.SetWindowText("Tabed ReBar"); m_wndTabedReBar.SetBarStyle(m_wndToolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC); //Adding Bars to TabedReBar control m_wndTabedReBar.AddBar(&m_wndToolBar1,"Standard Toolbar"); m_wndTabedReBar.AddBar(&m_wndExplererToolBar,"Explorer Toolbar");
//Adding Icons to Tab Control m_images.Create(IDB_TABIMAGES, 16, 1, RGB(255,0,255)); m_wndTabedReBar.GetTabCtrl().SetImageList(&m_images); }
Update History
- 1.0.0.109 June 5. 2004, First release version.