工具条添加图标与变灰(禁用)

本文介绍如何使用MFC创建一个自定义工具栏,并加载正常状态和禁用状态下的位图资源,设置工具栏的样式及调整按钮状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    if (!m_wndToolBar.CreateEx(
        this,
        TBSTYLE_FLAT,
        WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC|CBRS_BORDER_TOP) || !m_wndToolBar.LoadToolBar(IDR_TOOLBAR))
    {
        TRACE0("Failed to create toolbar/n");
        return -1;
    }
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);

    // Get bitmap
    CBitmap        cBitmap;
    HBITMAP hBmp = (HBITMAP)::LoadImage(
        AfxGetInstanceHandle(),
        MAKEINTRESOURCE(IDB_NORMAL_TB),
        IMAGE_BITMAP,
        0,
        0,
        LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS);
    cBitmap.Attach(hBmp);
    m_tbImageList.Create(48, 48, ILC_MASK | ILC_COLOR32, 0, 0);
    m_tbImageList.Add(&cBitmap, RGB(192,192,192));
    m_wndToolBar.GetToolBarCtrl().SetImageList(&m_tbImageList);
    cBitmap.Detach();
    DeleteObject(hBmp);

    // Add disable bitmap
    hBmp = (HBITMAP)::LoadImage(
        AfxGetInstanceHandle(),
        MAKEINTRESOURCE(IDB_DISABLE_TB),
        IMAGE_BITMAP,
        0,
        0,
        LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS);
    cBitmap.Attach(hBmp);
    m_tbDisableImages.Create(48, 48, ILC_MASK | ILC_COLOR32, 0, 0);
    m_tbDisableImages.Add(&cBitmap, RGB(192,192,192));
    m_wndToolBar.GetToolBarCtrl().SetDisabledImageList(&m_tbDisableImages);
    cBitmap.Detach();
    DeleteObject(hBmp);

    // Disable Up button
    m_wndToolBar.GetToolBarCtrl().EnableButton(ID_VIEW_UP, FALSE);

    return TRUE;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值