TransparentImage
该函数传送一张位图,但是位图中指定颜色会被忽略。
原型:
BOOL TransparentImage(
HDC hdcDest,
LONG DstX, LONG DstY, LONG DstCx, LONG DstCy,
HANDLE hSrc,
LONG SrcX, LONG SrcY, LONG SrcCx, LONG SrcCy,
COLORREF TransparentColor
);
参数:
hdcDest: 目标DC句柄
DstX、DstY:目标矩形左上角X、Y坐标,按逻辑单位表示。
DstCx、DstCy:目标矩形的宽度和高度,按逻辑单位表示。
hSrc: 目标DC句柄
SrcX、SrcY:源矩形左上角X、Y坐标,按逻辑单位表示。
SrcCx、SrcCy:源矩形的宽度和高度,按逻辑单位表示。
TransparentColor: 位图中呈现为透明的颜色。
返回值:
非0表示成功,0表示失败。调用GetLastError获取扩展错误信息。
说明:
如果hSrc是HBITMAP,那么该位图必须在调用TransparentImage 前被选入DC。
TransparentImage支持所有源位图格式。然而,对于32bpp位图,它只是拷贝alpha值到其上。
如果源矩形和目标矩形大小不同,源矩形将缩放大小以匹配目标矩形。
如果源矩形或目标矩形中的宽或高为负数,TransparentImage不会对位图产生镜像。
TransparentBlt
该函数执行位块传送,将指定源DC内的所有矩形像素对应的颜色数据传送到目标DC。
原型:
BOOL TransparentBlt(
HDC hdcDest,
int nXOriginDest, int nYOriginDest, int nWidthDest, int hHeightDest,
HDC hdcSrc,
int nXOriginSrc, int nYOriginSrc, int nWidthSrc, int nHeightSrc,
UINT crTransparent
);
参数:
hdcDest:目标DC句柄
nXOriginDest、int nYOriginDest:目标矩形左上角X、Y坐标,按逻辑单位表示。
nWidthDest、hHeightDest:目标矩形的宽度和高度,按逻辑单位表示。
hdcSrc:目标DC句柄
nXOriginSrc、nYOriginSrc:源矩形左上角X、Y坐标,按逻辑单位表示。
nWidthSrc、nHeightSrc:源矩形的宽度和高度,按逻辑单位表示。
crTransparent:源位图被当做透明的RGB颜色
返回值:
成功返回TRUE,失败返回FALSE。调用GetLastError获取扩展错误信息。
说明:
TransparentBlt 函数是 TransparentImage 函数的封装。
参考:
MSDN: TransparentImage TransparentBlt