我需要从具有指定透明度级别的本机 API 图像列表中绘制 32 位图像,但我不能这样做。我正在使用传递给的结构中的ImageList_DrawIndirect
调用和ILS_ALPHA
图像状态,但它似乎没有按预期工作。v6 的 ComCtl 已“附加”到我的应用程序,因此这不是问题的原因。IMAGELISTDRAWPARAMS
ImageList_DrawIndirect
怎么做?
我的代码如下所示:
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。