|
因为上月没发足5帖子变实习了= =
这个月得加点力多更新几课,不然这月结束又要上学了,就没时间了
这节课的内容就说下一个API
AlphaBlend
.DLL命令 AlphaBlend, 整数型, "msimg32.dll", "AlphaBlend", , 显示具有透明度的图像
.参数 hdcDest, 整数型, , 指向目标设备环境的句柄
.参数 nXoriginDest, 整数型, , 指定目标矩形区域左上角的X轴坐标,按逻辑单位。
.参数 nYOriginDest, 整数型, , 指定目标矩形区域左上角的Y轴坐标,按逻辑单位。
.参数 nWidthDest, 整数型, , 指定目标矩形区域的宽度,按逻辑单位。
.参数 hHeghtdest, 整数型, , 指向目标矩形区域的高度,按逻辑单位。
.参数 hdcSrc, 整数型, , 指向源设备环境的句柄。
.参数 nXOriginSrc, 整数型, , 指定源矩形区域左上角的X轴坐标,按逻辑单位。
.参数 nYOriginSrc, 整数型, , 指定源矩形区域左上角的Y轴坐标,按逻辑单位。
.参数 nWidthSrc, 整数型, , 指定源矩形区域的宽度,按逻辑单位。
.参数 nHeightSrc, 整数型, , 指定源矩形区域的高度,按逻辑单位。
.参数 blendFunction, 整数型, , 指定用于源位图和目标位图使用的alpha混合功能,用于整个源位图的全局alpha值和格式信息。源和目标混合功能当前只限为AC_SRC_OVER。
最后一个参数是一个BLENDFUNCTION结构,其实是一个整数型
BLENDFUNCTION结构
.数据类型 BlendFunction
.成员 BlendOp, 字节型, , , 明了源混合操作,但只支持AC_SRC_OVER,即根据源alpha值把源图像叠加到目标图像上
.成员 BlendFlags, 字节型, , , 必须为零,这个参数只是为以后应用所保留
.成员 SourceConstantAlpha, 字节型, , , 位图使用的透明度,0:完全透明;255:正常方式显示
.成员 AlphaFormat, 字节型, , , 通常为零,如果源位图为32位真彩色,此值可取为AC_SRC_ALPHA
那么这个参数应该怎么填?
我们可以利用字节集
.局部变量 混合参数, 字节集
.局部变量 透明度, 字节型
透明度 = 128
混合参数 = 取空白字节集 (4)
混合参数 [1] = #AC_SRC_OVER ' 它的BlendOp字段指明了源混合操作,但只支持AC_SRC_OVER
混合参数 [2] = 0 ' 必须为零,次参数只是为以后的应用所保留
混合参数 [3] = 透明度 ' 设置透明度
混合参数 [4] = 0 ' 通常为零,如果源位图为32位真彩色,此值可取为AC_SRC_ALPHA
AlphaBlend (GetDc (画板1.取窗口句柄 ()), 0, 0, 画板1.宽度, 画板1.高度, GetDc (画板2.取窗口句柄 ()), 0, 0, 画板2.宽度, 画板2.宽度, 取字节集数据 (混合参数, #整数型, )) ' 通过用“取字节集数据”来获取数据
混合前:
混合后:
大家也应该有所发现,我们的自绘最主要的是注重绘画发面的API积累
|
评分
-
查看全部评分
|