Condividi tramite


CImage::TransparentBlt

Copies a bitmap from the source device context to this current device context.

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( );

Parameters

  • hDestDC
    A handle to the destination device context.

  • xDest
    The x-coordinate, in logical units, of the upper left corner of the destination rectangle.

  • yDest
    The y-coordinate, in logical units, of the upper left corner of the destination rectangle.

  • nDestWidth
    The width, in logical units, of the destination rectangle.

  • nDestHeight
    The height, in logical units, of the destination rectangle.

  • crTransparent
    The color in the source bitmap to treat as transparent. By default, CLR_INVALID, indicating that the color currently set as the transparent color of the image should be used.

  • rectDest
    A reference to a RECT structure, identifying the destination.

  • xSrc
    The x-coordinate, in logical units, of the upper left corner of the source rectangle.

  • ySrc
    The y-coordinate, in logical units, of the upper left corner of the source rectangle.

  • nSrcWidth
    The width, in logical units, of the source rectangle.

  • nSrcHeight
    The height, in logical units, of the source rectangle.

  • rectSrc
    A reference to a RECT structure, identifying the source.

Return Value

TRUE if successful, otherwise FALSE.

Remarks

TransparentBlt is supported for source bitmaps of 4 bits per pixel and 8 bits per pixel. Use CImage::AlphaBlend to specify 32 bits-per-pixel bitmaps with transparency.

This method is applicable to Microsoft Windows 2000, Windows 98, and later systems. See TransparentBlt in the Windows SDK and CImage Limitations with Earlier Operating Systems for more detailed information.

Example

// 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;
}

Requirements

Header: atlimage.h

See Also

Concepts

CImage Class

CImage Members

CImage::StretchBlt

CImage::MaskBlt

CImage::BitBlt