GdiTransparentBlt 函数 (wingdi.h)

GdiTransparentBlt 函数执行与像素矩形相对应的颜色数据的位块传输,该矩形从指定的源设备上下文传输到目标设备上下文。

注意 此函数与 TransparentBlt 相同。
 

语法

BOOL GdiTransparentBlt(
  [in] HDC  hdcDest,
  [in] int  xoriginDest,
  [in] int  yoriginDest,
  [in] int  wDest,
  [in] int  hDest,
  [in] HDC  hdcSrc,
  [in] int  xoriginSrc,
  [in] int  yoriginSrc,
  [in] int  wSrc,
  [in] int  hSrc,
  [in] UINT crTransparent
);

参数

[in] hdcDest

目标设备上下文的句柄。

[in] xoriginDest

目标矩形左上角的 x 坐标(以逻辑单位为单位)。

[in] yoriginDest

目标矩形左上角的 y 坐标(以逻辑单位为单位)。

[in] wDest

目标矩形的宽度(以逻辑单元表示)。

[in] hDest

目标矩形的高度(以逻辑单元表示)。

[in] hdcSrc

源设备上下文的句柄。

[in] xoriginSrc

源矩形的 x 坐标(以逻辑单位为单位)。

[in] yoriginSrc

源矩形的 y 坐标(以逻辑单位为单位)。

[in] wSrc

源矩形的宽度(以逻辑单元表示)。

[in] hSrc

源矩形的高度(以逻辑单元表示)。

[in] crTransparent

要视为透明的源位图中的 RGB 颜色。

返回值

如果函数成功,则返回值为 TRUE

如果函数失败,则返回值为 FALSE

注解

GdiTransparentBlt 函数适用于兼容位图 (DDB) 。

GdiTransparentBlt 函数支持源位图的所有格式。 但是,对于 32 bpp 位图,它只是复制 alpha 值。 使用 AlphaBlend 指定每像素 32 位的透明度位图。

如果源矩形和目标矩形的大小不同,则拉伸源位图以匹配目标矩形。 使用 SetStretchBltMode 函数时,BLACKONWHITE 和 WHITEONBLACK 的 iStretchMode 模式将转换为 GdiTransparentBlt 函数的 COLORONCOLOR。

目标设备上下文指定目标坐标的转换类型。 源设备上下文指定源坐标的转换类型。

如果源或目标的宽度或高度为负值,GdiTransparentBlt 不会镜像位图。

在多监视器系统中使用时, hdcSrchdcDest 必须引用同一设备,否则函数将失败。 若要在不同设备的 DC 之间传输数据,请通过调用 GetDIBits 将内存位图转换为 DIB。 若要向第二台设备显示 DIB,请调用 SetDIBitsStretchDIBits

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 wingdi.h (包括 Windows.h)
Library Gdi32.lib
DLL Gdi32.dll

另请参阅

AlphaBlend

位图函数

位图概述

GetDIBits

SetDIBits

SetStretchBltMode

StretchDIBits