TransparentImage、TransparentBlt - [Daliy APIs]

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



posted on 2010-01-21 14:10  listenlisten  阅读(1270)  评论(0编辑  收藏  举报

导航