gdiAlphaBlend 函数 (wingdi.h)

GdiAlphaBlend 函数显示具有透明或半透明像素的位图。

语法

BOOL GdiAlphaBlend(
  [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] BLENDFUNCTION ftn
);

参数

[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] ftn

源位图和目标位图的 alpha 混合函数、要应用于整个源位图的全局 alpha 值,以及源位图的格式信息。 源和目标混合函数目前仅限于AC_SRC_OVER。 请参阅 BLENDFUNCTIONEMRALPHABLEND 结构。

返回值

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

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

此函数可以返回以下值。

返回代码 说明
ERROR_INVALID_PARAMETER
一个或多个输入参数无效。

注解

注意 此函数与 AlphaBlend 相同。
 
如果源矩形和目标矩形的大小不同,则拉伸源位图以匹配目标矩形。 如果使用 SetStretchBltMode 函数,则此函数的 iStretchMode 值将自动转换为 COLORONCOLOR, (即 BLACKONWHITE、WHITEONBLACK 和 HALFTONE 更改为 COLORONCOLOR) 。

通过使用当前为目标设备上下文指定的转换来转换目标坐标。 使用当前为源设备上下文指定的转换来转换源坐标。

(发生错误,如果源设备上下文标识了增强型图元文件设备上下文,则函数返回 FALSE) 。

如果目标和源位图的颜色格式不同, GdiAlphaBlend 将转换源位图以匹配目标位图。

GdiAlphaBlend 不支持镜像。 如果源或目标的宽度或高度为负,则此调用将失败。

呈现到打印机时,首先使用 SHADEBLENDCAPS 调用 GetDeviceCaps 以确定打印机是否支持与 GdiAlphaBlend 混合。 请注意,对于显示 DC,支持所有混合操作,这些标志表示操作是否加速。

如果源和目标图面相同,即它们是屏幕或相同的内存位图,并且源和目标矩形重叠,则会发生错误,并且函数返回 FALSE

源矩形必须完全位于源图面中,否则会发生错误,函数返回 FALSE

如果源或目标的宽度或高度为负值,GdiAlphaBlend 将失败。

BLENDFUNCTIONSourceConstantAlpha 成员指定要在整个源位图上使用的 alpha 透明度值。 SourceConstantAlpha 值与任何每像素 alpha 值组合在一起。 如果 SourceConstantAlpha 为 0,则假定图像是透明的。 将 SourceConstantAlpha 值设置为 255 (这表示图像不透明,) 只想使用每像素 alpha 值。

要求

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

另请参阅

BLENDFUNCTION

位图函数

位图概述

EMRALPHABLEND

GetDeviceCaps

SetStretchBltMode