アルファブレンドを使用しています。特別なことは何もありません。
私のコードは、Vista、Windows 7、および Windows 8 では正常に動作しますが、Windows XP では動作しません。
通常、AlphaBlend は 1 を返しますが、XP では 0 を返します。2 台の XP コンピュータでテストしました。
私は完全に困惑しています。
GetLastError は「正常に完了しました」を返します。
AlphaBlend は XP で動作するはずです。どうすればいいのか誰にもわかりませんか?
私の(VB6-)コードは
Dim LBF As Long
Dim bf As BLENDFUNCTION
With bf
.BlendOp = AC_SRC_OVER
.SourceConstantAlpha = 255
End With
Call CopyMemory(LBF, bf, Len(bf)) 'Copy struct into a Long var
(...ここに他のものがあります....)
Dim iRet&
iRet = AlphaBlend(Me.Picture1.hdc, 0, 0, lDestWidth, lDestHeight, lOtherDC, 0, 0, (rOtherWin.Right - rOtherWin.Left), (rOtherWin.Bottom - rOtherWin.Top), LBF)
すべての値は有効で期待どおりですが、AlphaBlend はすぐに 0 を返します。
ありがとうございました。