CImage::TransparentBlt
元のデバイス コンテキストからこの現在のデバイス コンテキストにビットマップをコピーします。
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
UINT crTransparent = CLR_INVALID
) const throw( );
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
UINT crTransparent = CLR_INVALID
) const throw( );
BOOL TransparentBlt(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
UINT crTransparent = CLR_INVALID
) const throw( );
BOOL TransparentBlt(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
UINT crTransparent = CLR_INVALID
) const throw( );
パラメーター
hDestDC
コピー先のデバイス コンテキストへのハンドル。xDest
x 座標、描画先の四角形の左上隅の論理単位で返します。yDest
y 座標、描画先の四角形の左上隅の論理単位で返します。nDestWidth
幅、描画先の四角形の論理単位で返します。nDestHeight
高さ、描画先の四角形の論理単位で返します。crTransparent
透明処理するソース ビットマップの色。 イメージの透明色を使用する必要があるように、既定では、CLR_INVALID現在設定されていることを示す色。rectDest
コピー先を識別する RECT の構造体への参照。xSrc
x 座標、元の四角形の左上隅の論理単位で返します。ySrc
y 座標、元の四角形の左上隅の論理単位で返します。nSrcWidth
元の四角形の幅 (論理単位で返します。nSrcHeight
高さ、元の四角形の論理単位で返します。rectSrc
ソースを識別する RECT の構造体への参照。
戻り値
成功した場合は、TRUEFALSE。
解説
TransparentBlt は 4 個のビットと 8 ビットの二つのソース ビットマップでサポートされています。 透過性を持つ 32 bpp ビットマップを指定するに CImage::AlphaBlend を使用します。
このメソッドは、Microsoft Windows 2000、Windows 98 以降のシステムに当てはまります。 詳細については Windows SDK の TransparentBlt と 以前のオペレーティング システムに CImage の制限 を参照してください。
使用例
// Performs a transparent blit from the source image to the destination
// image using the images' current transparency settings
BOOL TransparentBlt(CImage* pSrcImage, CImage* pDstImage, int xDest, int yDest,
int nDestWidth, int nDestHeight)
{
HDC hDstDC = NULL;
BOOL bResult;
if(pSrcImage == NULL || pDstImage == NULL)
{
// Invalid parameter
return FALSE;
}
// Obtain a DC to the destination image
hDstDC = pDstImage->GetDC();
// Perform the blit
bResult = pSrcImage->TransparentBlt(hDstDC, xDest, yDest, nDestWidth, nDestHeight);
// Release the destination DC
pDstImage->ReleaseDC();
return bResult;
}
必要条件
ヘッダー: atlimage.h