概述
本文实现TabedReBar控制类似CReBar显示通过标签控制酒吧。 TabedReBar控制的主要建议是减少通过收集在一个TabedReBar酒吧的大型机窗口的空间。 TabedReBar添加每个栏(工具栏,状态栏,DialogBar等)是由制表符分隔。类CBHTabedReBar
CBHTabedReBar是从CControlBar派生,并包含以下的方法和数据成员:Methodsvoid DrawGripper(CDC * PDC); / /绘制左侧的控制griper
BOOL AddBar(CControlBar * pBar,LPCTSTR pszText = NULL); / /添加酒吧TabedReBarCTabCtrlamp; GetTabCtrl()const的; / /访问的标签控制/ / {{AFX_MSG(CBHTabedReBar)AFX_MSG INT的OnCreate(LPCREATESTRUCT lpCreateStruct);AFX_MSG无效OnTabSelChange(NMHDR * pNMHDR,LRESULT * pResult);AFX_MSG无效OnWindowPosChanged(WINDOWPOS * lpwndpos);AFX_MSG无效OnLButtonDown(UINT nFlags,口岸系统点);AFX_MSG无效OnLButtonDblClk(UINT nFlags,口岸系统点);/ /}} AFX_MSG/ / {{AFX_VIRTUAL(CBHTabedReBar)虚拟无效OnUpdateCmdUI(CFrameWnd的pTarget,布尔bDisableIfNoHndler);虚拟BOOL创建(的CWnd * pParentWnd,
0; DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_TOP &
#160; UINT的NID = AFX_IDW_TABED_REBAR);虚拟CSIZE CalcFixedLayout(bStretch布尔,布尔bHorz);虚拟无效DoPaint(CDC * PDC); / /重写虚拟成员/ / {{AFX_VIRTUALMembersint m_nToobBarHeight; / /"选项卡的高度INT m_nActiveTab; / /当前激活的标签CRECT m_rectClient; / /正确的标签控制分栏列表LT TCB_ITEM *,TCB_ITEM * GT; m_Bars; / /派生的控件栏中的清单的CTabCtrl m_tabctrl; / /标签控制实施
CBHTabedReBar类支持对接(从现在开始,底部)和浮动功能。上定义相同的方式为您定义CReBar CBHTabedReBar类的对象。
为MainFrm.h,声明变量CBHTabedReBar:CBHTabedReBar m_wndTabedReBar;
在MainFrm.cpp,后在OnCreate消息成员的创建工具栏,DialogBar等,添加类似下面的代码:INT的CMainFrame::OnCreate中(LPCREATESTRUCT lpCreateStruct){//................/ /这里是标准的创建代码/ /创建代码CBHTabedReBar控制m_wndTabedReBar.Create(本);m_wndTabedReBar.SetWindowText("Tabed ReBarquot;);m_wndTabedReBar.SetBarStyle(m_wndToolBar.GetBarStyle()|
160; CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
/ /添加酒吧TabedReBar控制m_wndTabedReBar.AddBar(安培; m_wndToolBar1,"标准Toolbarquot;);m_wndTabedReBar.AddBar(AMP; m_wndExplererToolBar,"探险家Toolbarquot ;);//选项卡控件添加图标m_images.Create(IDB_TABIMAGES,16,1,RGB(255,0,255));
m_wndTabedReBar.GetTabCtrl()SetImageList(AMP; m_images);}更新历史记录1.0.0.109年6月5。 2004年,第一个发行版本。