Toolbar添加控件;创建多行toolbar;重新排列toolbar

   内容整理自网络,已验证可行。

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);

 

原文地址:https://www.cnblogs.com/ant-wjf/p/3357658.html