|
发表于 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();
|
|