【发布时间】:2011-03-21 08:01:21
【问题描述】:
我需要从本地 API 图像列表中绘制具有指定透明度级别的 32 位图像,但我不能这样做。我正在使用ImageList_DrawIndirect 调用和IMAGELISTDRAWPARAMS 结构中的ILS_ALPHA 图像状态传递给ImageList_DrawIndirect,但它似乎没有按预期工作。 v6 的 ComCtl 已“附加”到我的应用程序,因此这不是问题的原因。
怎么做?
我的代码如下所示:
Dim idp As IMAGELISTDRAWPARAMS
idp.cbSize = Len(idp)
idp.himl = m_hIml
idp.hdcDst = hdc
idp.rgbBk = -1
idp.x = xPixels
idp.y = yPixels
idp.i = 0
idp.fState = ILS_ALPHA
idp.Frame = 128
ImageList_DrawIndirect(idp)
它是 VB6,但没关系 - 事实上,我们目前只使用纯 WinAPI。
【问题讨论】:
标签: image winapi transparency draw imagelist