如何使用WinAPI ImageList_DrawIndirect绘制透明图像?

时间:2011-03-21 08:01:21

标签: image winapi transparency draw imagelist

我需要从具有指定透明度的本机API图像列表中绘制32位图像,但我不能这样做。我正在使用ImageList_DrawIndirect调用以及传递给ILS_ALPHA的{​​{1}}结构中的IMAGELISTDRAWPARAMS图像状态,但它似乎无法按预期工作。 v6的ComCtl“附加”到我的应用程序,所以这不是问题的原因。

怎么做?

我的代码如下所示:

ImageList_DrawIndirect

这是VB6,但没关系 - 实际上,我们现在只使用纯WinAPI。

1 个答案:

答案 0 :(得分:2)

该代码在我的应用程序中完美适合我。我的意思是我的应用程序中有相同的代码,唯一的例外是我没有设置rgbBk

我的猜测是,图像列表中的图像丢失了alpha通道。

我很惊讶您设置了rgbBk,因为我认为它对使用alpha的图片没有影响。