AlphaBlend()関数
BOOL AlphaBlend(
HDC hdcDest,
int nXOriginDest,
int nYOriginDest,
int nWidthDest,
int nHeightDest,
HDC hdcSrc,
int nXOriginSrc,
int nYOriginSrc,
int nWidthSrc,
int nHeightSrc,
BLENDFUNCTION blendFunction
);
透明または半透明のピクセルがあるビットマップを表示します。
hdcSrc | 転送先デバイスコンテキストへのハンドル。 |
xDest | 転送先四角形の左上隅のx座標。 |
yDest | 転送先四角形の左上隅のy座標。 |
nDestWidth | 転送先四角形の幅。 |
nDestHeight | 転送先四角形の高さ。 |
hdcSrc | 転送元デバイスコンテキストへのハンドル。 |
xSrc | 転送元四角形のx座標。 |
ySrc | 転送元四角形のy座標。 |
nSrcWidth | 転送元四角形の幅。 |
nSrcHeight | 転送元四角形の高さ。 |
blendFunction | BLENDFUNCTION 構造体を指定します。 |
typedef struct _BLENDFUNCTION {
BYTE BlendOp;
BYTE BlendFlags;
BYTE SourceConstantAlpha;
BYTE AlphaFormat;
}BLENDFUNCTION, *PBLENDFUNCTION, *LPBLENDFUNCTION;
BlendOp | 現時点ではAC_SRC_OVER以外の操作は定義されていない為、常にこの値を指定します。 |
BlendFlags | 常に0を指定します。 |
SourceConstantAlpha | コピー元の画像をどの程度の割合で透明にするかを表す値で、0だと完全な透明で255が完全な上書きとなる不透明度を表します。 |
AlphaFormat | 32ビットマップを生成し、ビットマップがアルファ値を持つ場合は指定しますが、RGBカラーで構成される通常のビットマップであれば0を指定します。 |
static BLENDFUNCTION blendfunc = { AC_SRC_OVER, 0, 32, 0 };
AlphaBlend( hmdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight,
hbitdc, 0, 0, bitmap.bmWidth, bitmap.bmHeight, blendfunc );
Comments