gpt4 book ai didi

c++ - 在 CToolBar 对象中使用 PNG 时出现问题

转载 作者:行者123 更新时间:2023-12-02 03:32:44 25 4
gpt4 key购买 nike

我正在尝试将 CImageList 插入到名为 m_wndUtilBarCToolBar 对象中。我使用下面的代码添加所有图像:

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 图形。

来自文档:

Using Image Lists in a Toolbar Control

您需要使用 SetDisabledImageList() 和 SetHotImageList() 来处理类似的事情。

关于c++ - 在 CToolBar 对象中使用 PNG 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60283450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com