MFC并列显示多个工具栏

发表于:2007-05-26来源:作者:点击数: 标签:
创建两个工具栏合并时第二个工具栏总是跑回下一行,终于折腾到放一行了,呵呵。。。 第一个工具栏 : if (!m_wndToolBar.CreateEx( this , TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY
创建两个工具栏合并时第二个工具栏总是跑回下一行,终于折腾到放一行了,呵呵。。。

第一个工具栏

if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT,
WS_CHILD | WS_VISIBLE | CBRS_TOP |
CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar");
return -1; // fail to create
}
m_wndToolBar.SetWindowText(_T("标准工具栏"));

m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);

第二个工具栏

if (!m_wndExtendBar.CreateEx(this, TBSTYLE_FLAT,
WS_CHILD | WS_VISIBLE | CBRS_TOP |
CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndExtendBar.LoadToolBar(IDR_EXTEND_BAR))
{
TRACE0(_T("Failed to create extend toolbar"));
return -1;
}
m_wndExtendBar.SetWindowText(_T("扩展工具栏"));
m_wndExtendBar.EnableDocking(CBRS_ALIGN_ANY);
CRect rect;
m_wndExtendBar.GetWindowRect(&rect);
rect.OffsetRect(1, 0);
this->RecalcLayout(); //关键的一步,重新排列
DockControlBar(&m_wndExtendBar, AFX_IDW_DOCKBAR_TOP, &rect);

原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)