问题:
将 32 位图标添加到 CToolbar 实例似乎无法正常工作
(图像质量发生变化)。
我在WEB上遇到2类题目,与我的问题相关:
- 1-st 讲述了如何将 32 位图像添加到 CToolBar
- 第 2 次(实际上是 MSDN 文档中的一页)“CToolBar 支持最多 16 种颜色的位图"( http://msdn.microsoft.com/en-us/library/69wz6ea1.aspx )
奇怪的是文档中提到“16 色”,而不是 2^16 色, 所以我可能会错误地解释这些信息。
最佳答案
如果您查看 CToolBar::LoadBitmap
,您会看到位图是使用 AfxLoadSysColorBitmap
加载的。快速查看该函数会发现颜色表固定为 16 种颜色。
// make copy of BITMAPINFOHEADER so we can modify the color table
const int nColorTableSize = 16;
与 MFC 中的大多数东西一样,如果您重写了足够多的方法,您可能可以让它加载 32 位位图,但正如您可能在其他地方看到的那样,您确实想要使用 CMFCToolBar
不仅支持更高的颜色深度,还有许多其他改进的功能。
关于c++ - CToolbar 是否支持带有 32 位图标的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21427159/