主表单以动画的形式从屏幕中向四周扩散,最后至最大化

fwy12 2008-05-25 02:03:09
加精
我有一个登陆表单,当我输入用户名和密码后打开主表单main,请问如何让主表单以动画的形式从屏幕中向四周扩散,最后至最大化
...全文
883 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
风箫吟 2012-03-31
  • 打赏
  • 举报
回复
这种应用感觉没有多大意义啊,毕竟用VFP写的程序追求的是稳定。
月沐庭轩 2011-09-10
  • 打赏
  • 举报
回复
不用APi不行吗?
ss474449816 2011-01-04
  • 打赏
  • 举报
回复
现在才知道原来这么多东西真的是看不懂呀,呵呵
liuanzhao 2010-09-20
  • 打赏
  • 举报
回复
学习了!!
likj_sh 2010-09-20
  • 打赏
  • 举报
回复
student
李世垚 2008-05-30
  • 打赏
  • 举报
回复
用css样式的filter不行吗
<div id='dMain' style='filter: blendTrans(duration=1.000);left:...;top:...;width:0;height:0;overflow:hidden>
乱七八糟的东西
</div>
javascript:
dMain.filters.blendTrans.Apply();
dMain.style.left=...;
dMain.style.top=...;
dMain.style.width=...;
dMain.style.height=...;
...
dMain.filters.blendTrans.Play();
wanbolantian 2008-05-29
  • 打赏
  • 举报
回复
都市夜猫大侠对API非常精通,十分佩服……
suifeng108 2008-05-28
  • 打赏
  • 举报
回复
mark
fwy12 2008-05-25
  • 打赏
  • 举报
回复
非常感谢。
都市夜猫 2008-05-25
  • 打赏
  • 举报
回复
下面是用窗口区域函数来实现的方法,麻烦一点:

1. 表单 Init:
DECLARE Long CreateRectRgn IN WIN32API Long, Long, Long, Long
DECLARE Long GetWindowRgn IN WIN32API Long, Long @
DECLARE Long SetWindowRgn IN WIN32API Long, Long, Long

This.AddProperty( 'cw', 0 )
This.AddProperty( 'hRgn', 0 )

m.hRgn = 0
GetWindowRgn( This.hWnd, @ m.hRgn )
This.hRgn = m.hRgn

m.hRgn = CreateRectRgn( 0, 0, 1, 1 )
SetWindowRgn( This.hWnd, m.hRgn, 1 )


2. 表单中加一个定时器, 设置 Interval = 10, Enabled = .F., Timer 事件中写:
WITH Thisform
IF ( .cw < SYSMETRIC(1)/2 ) OR ( .cw < SYSMETRIC(2)/2 )
.cw = .cw + 10
m.hRgn = CreateRectRgn( ;
SYSMETRIC(1)/2-.cw, SYSMETRIC(2)/2-.cw, ;
SYSMETRIC(1)/2+.cw, SYSMETRIC(2)/2+.cw )
SetWindowRgn( .hWnd, m.hRgn, 1 )
ELSE
This.Interval = 0
This.Enabled = .F.
SetWindowRgn( .hWnd, .hRgn, 1 )
ENDIF
ENDWITH


3. 表单 Show 方法中写:
This.Timer1.Enabled = .T.

4. 设置表单的 WindowState = 2
都市夜猫 2008-05-25
  • 打赏
  • 举报
回复
黑色就难处理了。用窗口区域函数试试,不过得加个定时器。

fwy12 2008-05-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dkfdtf 的回复:]
如果表单是顶级窗口可以使用 api 来实现:

DECLARE Long AnimateWindow IN WIN32API Long, Long, Long
AnimateWindow( This.hWnd, 200, 0x10 )

写在表单的 Init 事件中。
[/Quote]

谢谢,我测试了一下,只是他刚出来至左半个屏幕,停顿一下又扩到全屏的。而且在扩散的过程中是黑色的,到达全屏后才是原表单,请问可以修改。使其圆滑匀速扩到表单大小,而且在扩大的过程中也是表单而不是黑色的。

非常谢谢。
都市夜猫 2008-05-25
  • 打赏
  • 举报
回复
如果表单是顶级窗口可以使用 api 来实现:

DECLARE Long AnimateWindow IN WIN32API Long, Long, Long
AnimateWindow( This.hWnd, 200, 0x10 )

写在表单的 Init 事件中。

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧