CImage::TransparentBlt
Kopiuje bitmapy z kontekstu urządzenia źródłowego do tego bieżącego kontekstu urządzenia.
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( );
Parametry
hDestDC
Uchwyt kontekstu urządzenia docelowego.xDest
Współrzędna x, w jednostkach logicznych lewego górnego rogu prostokąta przeznaczenia.yDest
Współrzędna y, w jednostkach logicznych lewego górnego rogu prostokąta przeznaczenia.nDestWidth
Szerokość w jednostkach logicznych prostokąt docelowy.nDestHeight
Wysokość w jednostkach logicznych prostokąt docelowy.crTransparent
Kolor w źródłowa bitmapa traktować jako przezroczysty.Domyślnie CLR_INVALID, wskazujący, że należy używać kolorów aktualnie ustawiona jako kolor przezroczysty obraz.rectDest
Odwołanie do RECT struktury określenie miejsca przeznaczenia.xSrc
Współrzędna x, w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.ySrc
Współrzędna y, w jednostkach logicznych lewego górnego rogu prostokąta źródłowego.nSrcWidth
Szerokość w jednostkach logicznych prostokąta źródłowego.nSrcHeight
Wysokość w jednostkach logicznych prostokąta źródłowego.rectSrc
Odwołanie do RECT struktury identyfikacji źródła.
Wartość zwracana
TRUE w przypadku powodzenia inaczej FALSE.
Uwagi
TransparentBltjest obsługiwana dla bitmap źródła 4 bitów na piksel i 8 bitów na piksel.Użyj CImage::AlphaBlend do określenia 32 bity na piksela bitmapy z przezroczystością.
Metoda ta stosuje się do systemu Microsoft Windows 2000, Windows 98 i nowszych systemach.Zobacz TransparentBlt w Windows SDK i CImage ograniczenia z wcześniejszych systemów operacyjnych więcej szczegółowych informacji.
Przykład
// 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;
}
Wymagania
Nagłówek: atlimage.h