transparentBlt 函数 (wingdi.h)

TransparentBlt 函数将对应于像素矩形的颜色数据从指定的源设备上下文传输到目标设备上下文中。

语法

BOOL TransparentBlt(
  [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

注解

TransparentBlt 函数适用于兼容位图 (DB) 。

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

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

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

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

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

要求

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

另请参阅

AlphaBlend

位图函数

位图概述

GetDIBits

SetDIBits

SetStretchBltMode

StretchDIBits