注册 登录
编程论坛 VFP论坛

请教一张图片 image 如何让他逐渐的显示出来

laibinhua 发布于 2023-05-10 09:52, 2437 次点击
请教一张图片 image 如何让他逐渐的显示出来
整个表单可以用这种方式
Declare Long AnimateWindow In WIN32API Long, Long, Long
AnimateWindow(This.HWnd,1000,0x10) &&1000为毫秒
如果要对表单里的image1逐渐的显示出来有什么好办法吗?
28 回复
#2
sdta2023-05-10 09:56
由小变大试试
#3
kangss2023-05-10 10:22
你的目的是啥?软件启动封面?
#4
laibinhua2023-05-10 13:12
回复 3楼 kangss
目的是做些好看的效果,图片轮流播放,现在用web控件实现了,变通了一下方法,VFP找不出让图片慢慢显示出来的方法
#5
sam_jiang2023-05-10 14:38
回复 2楼 sdta
对!用timer控件控制image控件的大小,让它逐渐变大。。。
#6
laibinhua2023-05-10 14:55
回复 5楼 sam_jiang
我需要的效果是慢慢变清晰的效果,表单加载时VFP有方法可以实现,但表单里面的单个图片控件就没办法,只能用webbrow控件,利用html的功能来实现了
#7
吹水佬2023-05-10 17:47
简单的可将图片整成几张不同清晰度的图片渐变显示
#8
sostemp2023-05-10 18:11
设置透明度+Timer
#9
my23182023-05-10 19:34
以下是引用sostemp在2023-5-10 18:11:44的发言:

设置透明度+Timer

好办法,英雄所见
#10
kangss2023-05-11 12:27
以下是引用laibinhua在2023-5-10 13:12:33的发言:

目的是做些好看的效果,图片轮流播放,现在用web控件实现了,变通了一下方法,VFP找不出让图片慢慢显示出来的方法

图片轮流播放,在web控件中,用 H5 + css 方式实现比较容易,并且效果好。
#11
吹水佬2023-05-11 14:19
图片轮流播放用VFP的image应该就可以,也可以做个GIF。
#12
laibinhua2023-05-13 18:36
回复 11楼 吹水佬
做成gif没办法自定义图片了,选取几张图片,做轮放,大师,请问图片如何逐渐变清晰呢?
#13
laibinhua2023-05-13 18:37
回复 8楼 sostemp
你好,设置透明度+Timer,表单里的图片picture控件如何设置它的透明度呢?这是我要找的的方法,整个表单的透明度有办法设
#14
吹水佬2023-05-13 20:29
以下是引用laibinhua在2023-5-13 18:36:11的发言:

做成gif没办法自定义图片了,选取几张图片,做轮放,大师,请问图片如何逐渐变清晰呢?

GIF也是集成多张图片自动显示,了解GIF结构也可以自己用多张图片生成。
用同一张图片分别做出不同模糊度的几张图片,从模糊度高到低显示就当是逐渐变清晰。PS的话可以:滤镜 / 模糊 / 高斯模糊
#15
laibinhua2023-05-14 09:15
回复 14楼 吹水佬
我按你们说的用了个定时器每过N秒显示一张图片,有个问题出现了,每次执行这个定时器时,光标会从箭头变成打圈圈,界面上很不友好,有办法解决吗?
只有本站会员才能查看附件,请 登录
#16
sam_jiang2023-05-14 09:41
回复 15楼 laibinhua
你的电脑太卡了,换台电脑。
#17
wxzd1232023-05-14 09:58
Mouse Click At -100,-100
#18
laibinhua2023-05-15 13:16
回复 17楼 wxzd123
这是个不错的方法 起码看不见
#19
厨师王德榜2023-05-16 15:48
对整个表单可以实现,但是 只针对 图像控件的 透明度 控制,尚未找到方法 .
只有本站会员才能查看附件,请 登录
#20
antony5212023-05-16 16:15
回复 19楼 厨师王德榜
在图片控件上再加一个能控制透明度的控件呢
#21
吹水佬2023-05-16 17:03
试试 msimg32.dll 的 AlphaBlend() 有冇搞头
#22
吹水佬2023-05-18 15:57
调用AlphaBlend()示例
只有本站会员才能查看附件,请 登录

程序代码:
DECLARE long GetDC                IN user32  long
DECLARE long ReleaseDC            IN user32  long,long
DECLARE long LoadImage            IN user32  long,string,long,long,long,long
DECLARE long CreateCompatibleDC   IN gdi32   long
DECLARE long GetBitmapDimensionEx IN gdi32   long,string@
DECLARE long DeleteDC             IN gdi32   long
DECLARE long SelectObject         IN gdi32   long,long
DECLARE long DeleteObject         IN gdi32   long
DECLARE long AlphaBlend           IN msimg32 long,long,long,long,long,long,long,long,long,long,long

#define IMAGE_BITMAP       0
#define LR_LOADFROMFILE    0x0010

cFile   = "D:\temp\巧克力.bmp"
nWidth  = 100
nHeight = 140
hdcDest = GetDC(_screen.hWnd)
hBitmap = LoadImage(0, cFile, IMAGE_BITMAP, nWidth, nHeight, LR_LOADFROMFILE)
IF hBitmap == 0
    RETURN
ENDIF
hdcSrc = CreateCompatibleDC(0)
IF hdcSrc == 0
    DeleteObject(hBitmap)
    RETURN
ENDIF
hObjSrc = SelectObject(hdcSrc, hBitmap)
FOR nAlpha=0 TO 255 STEP 17
    AlphaBlend(hdcDest, 10, 10, nWidth, nHeight, hdcSrc, 0, 0, nWidth, nHeight, 0x10000*nAlpha)
    INKEY(0.8)
ENDFOR
SelectObject(hdcSrc, hObjSrc)
DeleteDC(hdcSrc)
DeleteObject(hBitmap)
ReleaseDC(_screen.hWnd, hdcDest)

#23
schtg2023-05-18 19:29
回复 22楼 吹水佬
高!
#24
heibaochen2023-05-18 20:57
回复 8楼 sostemp
请教一下,您是怎么设置图象控件的透明度,我想学习一下。


[此贴子已经被作者于2023-5-18 21:03编辑过]

#25
shenlancwz2023-05-31 17:28
回复 22楼 吹水佬
请教:如果引用到表单中?
#26
吹水佬2023-05-31 21:10
以下是引用shenlancwz在2023-5-31 17:28:05的发言:

请教:如果引用到表单中?

_screen就是表单
#27
shenlancwz2023-06-01 14:09
回复 26楼 吹水佬
谢谢,学习了。
#28
shenlancwz2023-06-01 14:50
回复 26楼 吹水佬
显示完如何清除掉?
#29
吹水佬2023-06-01 14:57
以下是引用shenlancwz在2023-6-1 14:50:11的发言:

显示完如何清除掉?

表单cls方法
1