指定された透明度レベルでネイティブ 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 のみを使用しています。