VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 770|回复: 4

关于彩色工具栏的问题。急!!!

[复制链接]

1

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-3-3 22:00:02 | 显示全部楼层 |阅读模式
我使用的方法是CToolBar::SetImageList(),设置成功!但如果我使工具栏的按钮失效,那么在原来显示真彩色按钮的地方就变成了深色,而且什么都看不到了,这该怎么解决?
回复

使用道具 举报

0

主题

8

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-5-22 18:15:01 | 显示全部楼层
没有添加消息映射,按钮被disable了
回复

使用道具 举报

0

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-5-25 20:15:01 | 显示全部楼层

GetSystemMenu(TRUE);
DrawMenuBar();

试试看
回复

使用道具 举报

0

主题

4

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-6-28 11:30:01 | 显示全部楼层
CToolBar::SetImageList()还有几个类似的方法
SetHotImageList()// 当鼠标移到按钮上时,显示的图片
SetDisabledImageList(&img)//当按钮被禁用时,显示
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-7-13 18:45:01 | 显示全部楼层
哪是因为没有设置"Disable"的位图,而MFC采用默认算法变换“正常”位图,但这对于真彩色工具栏来说,变换出来的效果非常难看。

所以最好用代码设置,使用SetDisabledImageList()函数,图片可以彩用以下简单办法得到:
用PhotoShop打开已绘制好的菜色式具栏图片,选择:图象->模式->灰度,然后另存为一个文件供SetDisabledImageList时使用!

示例代码:
        CImageList img;
        CBitmap        bitmap;
       
        // 设置按钮的最小、最大尺寸以及支持扩展按钮风格
        m_wndOftenToolBar.GetToolBarCtrl().SetButtonWidth(32, 42);
        m_wndOftenToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
       
        // 设置按钮"热"的位图
        bitmap.LoadBitmap(IDB_HOTTOOLBAR);
        img.Create(32, 31, ILC_COLOR8 | ILC_MASK, 0, 0);
        img.Add(&bitmap, RGB(192,192,192));
        m_wndOftenToolBar.GetToolBarCtrl().SetHotImageList(&img);
        bitmap.Detach();
        img.Detach();
       
        // 设置按钮"冷"的位图
        bitmap.LoadBitmap(IDB_COLDTOOLBAR);
        img.Create(32, 31, ILC_COLOR8 | ILC_MASK, 0, 0);
        img.Add(&bitmap, RGB(192,192,192));
        m_wndOftenToolBar.GetToolBarCtrl().SetImageList(&img);
        bitmap.Detach();
        img.Detach();
       
        // 设置按钮"Disable"的位图
        bitmap.LoadBitmap(IDB_DISABLETOOLBAR);
        img.Create(32, 31, ILC_COLOR8 | ILC_MASK, 0, 0);
        img.Add(&bitmap, RGB(192,192,192));
        m_wndOftenToolBar.GetToolBarCtrl().SetDisabledImageList(&img);
        bitmap.Detach();
        img.Detach();
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表