TransparentBlt函數(shù)用于在設(shè)備上下文中繪制帶有透明效果的圖像。
函數(shù)原型:
BOOL TransparentBlt(
HDC hdcDest,
int xoriginDest,
int yoriginDest,
int wDest,
int hDest,
HDC hdcSrc,
int xoriginSrc,
int yoriginSrc,
int wSrc,
int hSrc,
UINT crTransparent
);
參數(shù)說明:
使用示例:
CImage image;
image.Load(_T("path/to/image.png"));
CDC* pDC = GetDC();
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC, image.GetWidth(), image.GetHeight());
memDC.SelectObject(&bmp);
memDC.BitBlt(0, 0, image.GetWidth(), image.GetHeight(), pDC, 0, 0, SRCCOPY);
image.BitBlt(memDC.GetSafeHdc(), 0, 0, SRCCOPY);
TransparentBlt(pDC->GetSafeHdc(), x, y, width, height, memDC.GetSafeHdc(), 0, 0, image.GetWidth(), image.GetHeight(), RGB(255, 0, 255));
ReleaseDC(pDC);
以上示例中,首先加載圖像文件到CImage對(duì)象中,然后創(chuàng)建一個(gè)兼容的內(nèi)存設(shè)備上下文和位圖對(duì)象,將位圖對(duì)象選入設(shè)備上下文,使用BitBlt函數(shù)將屏幕上的圖像復(fù)制到內(nèi)存設(shè)備上下文中,然后使用BitBlt函數(shù)將圖像繪制到內(nèi)存設(shè)備上下文中,最后使用TransparentBlt函數(shù)將內(nèi)存設(shè)備上下文中的圖像繪制到屏幕上的目標(biāo)設(shè)備上下文中,并指定透明顏色。