vb Code:
Public Type BLENDFUNCTION
BlendOp As Byte
BlendFlags As Byte
SourceConstantAlpha As Byte
AlphaFormat As Byte
End Type
Public Declare Function AlphaBlend Lib "msimg32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal widthSrc As Long, ByVal heightSrc As Long, ByVal blendFunct As Long) As Boolean
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Sub AlphaBlt(ByVal dhDC As Long, ByVal dx As Long, ByVal dy As Long, ByVal dW As Long, ByVal dH As Long, ByVal shDC As Long, ByVal Sx As Long, ByVal Sy As Long, ByVal sW As Long, ByVal sH As Long)
Dim tmpHDC As Long, hBitmap As Long, bitmap As Long
Dim Blend As BLENDFUNCTION, BlendLng As Long
Blend.AlphaFormat = 1
Blend.SourceConstantAlpha = 255
CopyMemory BlendLng, Blend, 4
AlphaBlend dhDC, dx, dy, dW, dH, shDC, Sx, Sy, sW, sH, BlendLng
End Sub
'assuming a pic1 picturebox with scalemode to 3 and autosize to true
Pic1.Picture = LoadPictureGDIPlus("C:\some32bpp.png", , , , , , True)
AlphaBlt Form1.hdc, 0, 0, Pic1.ScaleWidth, Pic1.ScaleHeight, Pic1.hdc, 0, 0, Pic1.ScaleWidth, Pic1.ScaleHeight, , True