内容整理自网络,已验证可行。
1.Toolbar添加控件
如何在工具栏上添加平面下拉控件:http://www.vckbase.com/index.php/wv/285
效果图如下:
2.创建多行Toolbar
// ToolBar多行多列显示:
if (!m_wndToolBar2.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_RIGHT | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED) ||
!m_wndToolBar2.LoadToolBar(IDR_TOOLBAR2))
{
TRACE0("Failed to create toolbar ");
return -1; // fail to create
}
// 创建工具栏的时候不要指定风格 TBSTYLE_WRAPABLE
// 注意要将 CBRS_SIZE_DYNAMIC 置换成 CBRS_SIZE_FIXED, 否则无法显示多行工具栏
for (i=1; i<m_wndToolBar2.GetToolBarCtrl().GetButtonCount(); i+=2)
m_wndToolBar2.SetButtonStyle(i, TBBS_WRAPPED);
// 由于多行toolbar是横向排列,若添加分隔符,分隔符是竖向的。
// 若右侧创建带有风格符的多行Toolbar,可由多个Toolbar拼接,拼接处有分隔符。同时toolbar是EnableDocking的。
3.重新排列Toolbar
// 重新排列toolbar
CRect rect;
m_wndToolBar3.GetWindowRect(&rect);
this->RecalcLayout(); // 关键的一步,重新排列。Called by the framework when the standard control bars are toggled on or off or when the frame window is resized
rect.OffsetRect(1300,400);
DockControlBar(&m_wndToolBar3, AFX_IDW_DOCKBAR_RIGHT, &rect);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);