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
Координата х в логических единицах, левого угла прямоугольника назначения.yDest
Координата y в логических единицах, левого угла прямоугольника назначения.nDestWidth
Ширина (в логических единицах, конечного прямоугольника.nDestHeight
Высота (в логических единицах, конечного прямоугольника.crTransparent
Цвет в растровом изображении источника, который должен рассматриваться как прозрачный. По умолчанию CLR_INVALID, что указывает на то, что цвет в данный момент установлен как прозрачный цвет изображения должен использоваться.rectDest
Ссылка на структуру RECT, указывая назначения.xSrc
Координата х в логических единицах, левого угла прямоугольника источника.ySrc
Координата y в логических единицах, левого угла прямоугольника источника.nSrcWidth
Ширина (в логических единицах, прямоугольника источника.nSrcHeight
Высота (в логических единицах, прямоугольника источника.rectSrc
Ссылка на структуру RECT, задающим источник.
Возвращаемое значение
Если TRUE успешно, в противном случае FALSE.
Заметки
TransparentBlt поддерживается для растровых изображений источника 4 бит на точка и 8 бит на точку. Используйте CImage::AlphaBlend для определения 32 разряда на пиксель растрового изображения с прозрачностью.
Этот метод применим к Microsoft Windows 2000, Windows 98 и более поздние системах. См. раздел TransparentBlt в Windows SDK и Ограничения 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;
}
Требования
Header: atlimage.h