MFC 添加 自定义 工具栏

class CMainFrame : public CFrameWnd
{
    void OnLoadToolBar();
    CImageList m_imgList;
    CToolBar m_ToolBar;
}
void CMainFrame::OnLoadToolBar()
{
    const int arr_size = 1;

    m_imgList.Create(48, 48, ILC_MASK | ILC_COLOR24, 6, 3);

    HICON hIcon[arr_size];

    hIcon[0] = theApp.LoadIcon(IDI_iconFileManage);
    m_imgList.Add(hIcon[0]);

    UINT nArray[arr_size];
    for (int i = 0; i < arr_size; i++)
    {
        nArray[i] = ID_btnFileManage + i;
    }

    m_ToolBar.CreateEx(this); // 创建 工具栏 控件
    m_ToolBar.EnableToolTips(TRUE); // 激活 信息提示功能

    m_ToolBar.SetButtons(nArray, arr_size);

    m_ToolBar.SetSizes(CSize(60, 56), CSize(48, 48)); // 第一个是 按钮大小,第二个是 图像大小,按钮 比 图像 宽大7 高大6 以上

    m_ToolBar.GetToolBarCtrl().SetImageList(&m_imgList);

    m_ToolBar.ModifyStyle(0, TBSTYLE_TRANSPARENT); // 设置 工具栏背景色 透明

    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO:  在此添加您专用的创建代码
    OnLoadToolBar();

    return 0;
}

按钮是灰色,是因为没有添加按钮消息函数,添加之后显示彩色

你可能感兴趣的:(MFC 添加 自定义 工具栏)