VC++ 动态创建单个工具条,并加载外部的位图(bmp)文件为工具栏图像

步骤:

1, 在框架类CMainFrame头文件里,增加图像变量和工具条变量。

CMFCToolBarImages m_UserImages;

CMFCToolBar m_wndToolBar;

2,在OnCreate函数里动态创建和加载工具条

// 创建工具条
if (!m_wndToolBar .CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(1, 1, 1, 1), nID))
{
return false; // 未能创建
}

// 设置工具条按钮大小和图像大小(因为下图中要用的图片是24*24的)
m_wndToolBar.SetSizes(CSize(31,30),CSize(24,24));

// 设置工具条名称
m_wndToolBar.SetWindowText(_T(“测试”));

………

……….

// 设置可停靠位置(这里设置可以任意位置)
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);

// 工具条停靠
DockPane(&m_wndToolBar);

………..

// 加载位图图像

m_UserImages.SetImageSize(CSize(24,24),FALSE);// 设置图像大小

if (!m_UserImages.Load(strBmpPath))// 加载位图文件
{
return false;
}

m_wndToolBar.SetUserImages(&m_UserImages.);

// 创建工具条按钮
 m_wndToolBar .InsertButton(CMFCToolBarButton(m_nCurStartId + i , i, NULL, TRUE, 0));

// 在这里CMFCToolBarButton()第四个参数需要设置为true,这样在重绘的时候才会,调用自己设置的图像。

// 设置按钮提示

m_wndToolBar .SetButtonText(nIndex,strTemp);
这样就结束了。
原文地址:https://www.cnblogs.com/lujin49/p/4729287.html