我已按照此问题中的步骤操作: Higher color depth for MFC toolbar icons?
代码有效。但我有另一个问题 - 任何禁用的按钮只是灰色框。 一旦启用它们 - 它们就应该是它们应该的。
我怀疑CToolBar不知道如何使提供的图像变灰 - 任何人都可以帮忙吗?
提前感谢。
答案 0 :(得分:3)
CToolBar实际上最多可以接受三个图像列表来处理按钮的正常,禁用和突出显示状态。
完成我需要的东西 - 正常和禁用按钮状态。我需要两张图片。一个带有普通彩色图标,另一个带有灰色图标。
将图像作为位图资源添加到项目中 - 修改并记下ID
创建两个图像列表并相应地设置它们:( m_wndToolBar是我项目中的工具栏)
CImageList imgListActive;
CImageList imgListDisabled;
/* Load your CImageLists */
m_wndToolBar.GetToolBarCtrl().SetImageList(&imgListActive);
m_wndToolBar.GetToolBarCtrl().SetDisabledImageList(&imgListDisabled);
设置工具栏的突出显示版本:
CImageList imgListHighlighted;
/* Load your CImageList */
m_wndToolBar.GetToolBarCtrl().SetHotImageList(&imgListHighlighted);
et voila!
答案 1 :(得分:0)
通常需要两件事来获得高色彩按钮和正确的灰色图像:
不幸的是,这也意味着您必须直接在应用程序的.rc资源文件中编辑工具栏定义。