描述
AlphaBlend功能显示具有透明或半透明像素的位图。
C++ 语法
BOOL AlphaBlend( __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 ); |
PowerBASIC 语法
FUNCTION AlphaBlend( _ BYVAL hdcDest AS LONG, _ BYVAL xoriginDest AS LONG, _ BYVAL yoriginDest AS LONG, _ BYVAL wDest AS LONG, _ BYVAL hDest AS LONG, _ BYVAL hdcSrc DWORD, _ BYVAL xoriginSrc AS LONG, _ BYVAL yoriginSrc AS LONG, _ BYVAL wSrc AS LONG, _ BYVAL hSrc AS LONG, _ BYVAL ftn AS BLENDFUNCTION _ ) AS LONG |
参数
hdcDest
[in]处理目标设备上下文。
xoriginDest
[in]指定目标矩形左上角的x坐标(以逻辑为单位)。
yoriginDest
[in]指定目标矩形左上角的y坐标(以逻辑为单位)。
wDest
[in]指定目的矩形的宽度(以逻辑为单位)。
hDest
[in]指定目标矩形的高度(以逻辑为单位)。
hdcSrc
[in]处理源设备上下文。
xoriginSrc
[in]指定源矩形左上角的x坐标(以逻辑为单位)。
yoriginSrc
[in]指定源矩形左上角的y坐标(以逻辑为单位)。
wSrc
[in]指定源矩形的宽度(以逻辑为单位)。
hSrc
[in]指定源矩形的高度(以逻辑为单位)。
ftn
[in]指定源和目标位图的阿尔法混合函数,要应用于整个源位图的全局alpha值,以及源位图的格式信息。源和目标混合函数目前仅限于AC_SRC_OVER。请参阅BLENDFUNCTION和EMRALPHABLEND结构。
返回值
如果函数成功,返回值为TRUE。
如果函数失败,返回值为FALSE。
Windows NT / 2000 / XP / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError.这可以返回以下值。
值 |
含义 |
ERROR_INVALID_PARAMETER |
一个或多个输入参数无效。 |
备注
如果源矩形和目标矩形的大小不一样,则源位图将被拉伸以匹配目标矩形。如果使用SetStretchBltMode功能,则此函数将iStretchMode值自动转换为COLORONCOLOR(即BLACKONWHITE,WHITEONBLACK和HALFTONE更改为COLORONCOLOR)。
使用当前为目标设备上下文指定的转换来转换目标坐标。通过使用当前为源设备上下文指定的变换来转换源坐标。
如果源设备上下文标识增强的图元文件设备上下文,则会发生错误(并且函数返回FALSE)。
如果目的地址和源位图不具有相同的颜色格式,AlphaBlend将源位图转换为匹配目标位图。
AlphaBlend不支持镜像。如果源或目的地的宽度或高度为负,则此调用将失败。
当渲染到打印机时,首先使用SHADEBLENDCAPS调用GetDeviceCaps以确定打印机是否支持与AlphaBlend混合。请注意,对于显示器DC,支持所有混合操作,这些标志表示操作是否加速。
如果源和目标是相同的表面,它们都是屏幕或相同的内存位图,并且源和目标矩形重叠,发生错误,函数返回FALSE。
源矩形必须完全位于源表面内,否则会发生错误,函数返回FALSE。
如果源或目的地的宽度或高度为负,则AlphaBlend将失败。
注意 SourceConstantaAlphaSourceConstantaAlpha成员指定了在整个源位图上使用的Alpha透明度值。SourceConstantAlpha值与任何每个像素的Alpha值组合。如果SourceConstantAlpha为0,则假定图像是透明的。当您只想使用每像素的Alpha值时,将SourceConstantAlpha值设置为255(表示图像不透明)。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)