我正试图将一个CImageList
插入一个名为m_wndUtilBar
的CToolBar
对象中。我使用以下代码添加所有图像:
CImageList imageList;
CBitmap bitmap;
COLORREF crMask = RGB(192, 192, 192);
CSize button, button_img;
button.cx = 39;
button.cy = 39;
button_img.cx = 32;
button_img.cy = 32;
m_wndUtilBar.SetSizes(button, button_img);
imageList.Create(button_img.cx, button_img.cy, ILC_COLOR32 | ILC_MASK, 18, 1);
LoadBitmapFromPNG(IDB_PNG_UP, bitmap);
imageList.Add(&bitmap, crMask);
bitmap.Detach();
.
.
. // adding more images into the list
.
然后我将列表添加到对象中,如下所示:
m_wndUtilBar.GetToolBarCtrl().SetImageList(&imageList);
imageList.Detach();
我使用的所有图像都是项目中包含的资源,不是位图,而是PNG(我这么说是因为我认为这就是问题所在(。
一旦我运行了应用程序,一切都很好。显示所有图像,并且按钮工作正常。然而,当我禁用其中一个按钮时,这个按钮的图像显示为已启用(没有典型的灰色禁用掩码(,我不知道为什么。
有人能帮我吗?我不知道该怎么做才能将禁用效果应用于禁用按钮的图像。
更新1
我看到禁用效果只出现在图像的边界上,所以我认为该效果是应用的,然而,该效果并没有应用在PNG内部。
您可能还需要为禁用状态提供一个png图形。
来自文件:
在工具栏控制中使用图像列表
您需要使用SetDisabledImageList((和SetHotImageList(。