为什么在CToolBar中使用高深度颜色的禁用按钮只是灰色框
Why are disabled buttons using high depth colour in CToolBar are just grey boxes?
我遵循了这个问题的步骤:更高的颜色深度为MFC工具栏图标?
代码可以工作。但我有另一个问题-任何禁用按钮只是灰色的盒子。一旦它们被启用,它们就会像它们应该的那样。
我怀疑CToolBar不知道如何使所提供的图像变灰-有人可以帮助吗?
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);
等。瞧!
通常需要做两件事来获得高颜色按钮和正确的灰色图像:
- 总是为VisualStudio之外的工具栏编辑。bmp文件。
- 使用调用CMFCToolBar::AddToolBarForImageCollection(IDR_MAINFRAME)将图像添加到MFC;在你的InitInstance()实现中
不幸的是,这也意味着您必须直接在应用程序的.rc资源文件中编辑工具栏定义。
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 问:如何使用C++中的按钮从窗口打开窗口
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- QML按钮点击功能执行顺序
- 更改 QT 中按钮的颜色
- 颜色为C++的单选按钮
- 使用winapi使用按钮更改窗口的背景颜色
- 当鼠标越过按钮时,我可以更改按钮背景颜色吗?
- 如何设置按钮的背景颜色,包括复选框按钮
- Qt 样式表按钮背景颜色
- 如何阻止Qt的setStyleSheet重置表单和按钮上的指定颜色?
- 单击按钮后对QML矩形的颜色设置动画
- 在不声明成员变量的情况下更改按钮颜色
- 如何获取指向颜色按钮的指针
- 如何更改QDockWidget浮动按钮的颜色
- 如何使用QSS为禁用按钮设置不同的背景颜色
- 为什么在CToolBar中使用高深度颜色的禁用按钮只是灰色框
- 如何获取标题栏窗口控件的 RECT(最大化、最小化、关闭按钮)?我尝试制作自定义颜色标题栏
- 更改 Windows 上的任务栏按钮颜色