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。 请参阅 BLENDFUNCTION 和 EMRALPHABLEND 结构。
返回值
如果函数成功,则返回值为 TRUE。
如果函数失败,则返回值为 FALSE。
此函数可以返回以下值。
返回代码 | 说明 |
---|---|
|
一个或多个输入参数无效。 |
注解
通过使用当前为目标设备上下文指定的转换来转换目标坐标。 使用当前为源设备上下文指定的转换来转换源坐标。
(发生错误,如果源设备上下文标识了增强型图元文件设备上下文,则函数返回 FALSE) 。
如果目标和源位图的颜色格式不同, GdiAlphaBlend 将转换源位图以匹配目标位图。
GdiAlphaBlend 不支持镜像。 如果源或目标的宽度或高度为负,则此调用将失败。
呈现到打印机时,首先使用 SHADEBLENDCAPS 调用 GetDeviceCaps 以确定打印机是否支持与 GdiAlphaBlend 混合。 请注意,对于显示 DC,支持所有混合操作,这些标志表示操作是否加速。
如果源和目标图面相同,即它们是屏幕或相同的内存位图,并且源和目标矩形重叠,则会发生错误,并且函数返回 FALSE。
源矩形必须完全位于源图面中,否则会发生错误,函数返回 FALSE。
如果源或目标的宽度或高度为负值,GdiAlphaBlend 将失败。
BLENDFUNCTION 的 SourceConstantAlpha 成员指定要在整个源位图上使用的 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 |