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