2024年4月12日发(作者:)
Powerbuilder 动态显示图片特效
Powerbuilder 动态显示图片特效
Powerbuilder(以下简称PB)是美国Sybase公司研制的一种新型、快速开发工具。在实际应用
中,经常会使用到显示图片,而直接显示图片,有些过于单调,特别是有大量图片展示的应用中。
如果能以特效的方式(如飞入、展开、开门、百叶窗、马赛克等)显示图片,将大大增强用户体
验,也让你的应用显得更加专业。下面根据实际的经验,从以下几个方面谈谈如何实现图片显示的
特效功能。
一、常规方法
大家都知道,PB的文本框是不透明的,虽然平时使用时不太满意,但我们可以利用它的不透明来
实现一些图片显示特效。
1.1 展开特效
在窗口建立一个图形控件,设置图片文件,然后建立一个与图形控件相同大小的文本框,文
本设为空,置于图片控件的上层,这样就把图片掩盖起来了。然后调用一个功能函数,让文本框逐
渐变小,并调整起始位置,这样遮盖的图片就逐渐显示出来了,给人以特效的视觉。
功能函数大致如下:
integer li_loop,li_step
st_ = p_ //st_1 为文本框 p_1 为图形控件
st_ = p_
st_1.x = p_1.x
st_1.y = p_1.y
li_step = st_ /100
for li_loop = 1 to 100
st_1.x = st_1.x + li_step
st_ = st_ - li_step
// messagebox('test','test')
//调用延时函数,在后面具体说明
next
上例的效果是从左往右展开效果,同理,可以实现从右向左的效果(x坐标不变)和从上往
下、从下往上的效果(更改高度)或者从四周同时向中间展开(x、y、width、height同时改变)。
P_1 st_1
1.2 开门效果
参考1.1使用两个文本框,文本框为图形控件的一半大小(左右平分或者垂直平分)一个向
左,一个向右(或者一个向上、一个向下)即可实现开门效果。
1
Powerbuilder 动态显示图片特效
参考1.1使用多个同等大小的文本框,同时控制各个文本框的大小,即可实现百叶窗的效
果,在此不再累述。
st_1 st_2
1.3 百叶窗效果
1.4 放大效果
图形控件宽度或高度逐渐变大即可实现,控制x、y、width或height即可实现向下、向
上、向左、向右,四个角或中间开始。
1.5 马赛克效果
可以使用n个相同大小的文本框,随机控制文本框的显示属性,以达到马赛克的效果。不
过,因为要使用的文本框过多,通常不建议使用该方法。
二、调用 Windows API 函数
实现特效的另一种方法就是调用Windows API 复制图像块,以控制图像的显示,具有非常大的灵
活性。主要使用的API有LoadImageA,BitBlt ,StretchBlt,CreateCompatibleDC,GetDC,
SelectObject,Sleep,DeleteDC,ReleaseDC
下面重点谈谈BitBlt ,StretchBlt函数
2.1 BitBIt 函数
函数功能
BitBIt函数用于将指定设备场景中某个区域内的像素的位数据块(bit-block)转换到另一设备场景中。
2


发布评论