一个很可笑的问题!(30分)

  • 主题发起人 主题发起人 网络幽灵
  • 开始时间 开始时间

网络幽灵

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]请问怎样制作一个动态加载窗体的效果,就是窗体出现的时候,有动画效果,请给一个简单<br>的实例.
 
&nbsp; &nbsp;BOOL AnimateWindow(<br>&nbsp; &nbsp;HWND hwnd, // handle to window<br>&nbsp; &nbsp;DWORD dwTime, // duration of animation<br>DWORD dwFlags // animation type);<br>参数说明:<br>&nbsp; 1。hwnd : 一个你要显示窗体的句柄。<br>&nbsp; 2。dwTime : 完成显示操作的时间。(一般为500-1000,你可以自己调节)<br> 3。dwFlags : 这是一个关键的东东,它决定了你的子窗体弹出的方式。<br> dwFlags其中包括9种基本弹出方式,当然你可以组合它们使用,下面我就对者9种方法做个简单的介绍:<br> a. AW_SLIDE : 表示用滑动方式显示;<br> b. AW_BLEND : 表示用淡出或淡入方式显示;(Windows 2000菜单显示)<br> c. AW_CENTER : 表示窗体从小窗体沿对角线扩大至窗体定义的大小;<br> d. AW_HIDE : 顾名思义,就是隐藏窗体;<br> e. AW_HOR_POSITIVE :窗体从左向右生成生成显示<br> f. AW_HOR_NEGATIVE :窗体从右向左生成生成显示<br> g. AW_VER_NEGATIVE :窗体从下向上生成生成显示<br> h: AW_VER_POSITIVE :窗体从上向下生成生成显示<br> i: AW_ACTIVATE :顾名思义,就是激活窗体;<br><br>以上就是9种显示的模式,你可以组合 (AW_HOR_POSITIVE 或 AW_HOR_NEGATIVE) 和(AW_VER_POSITIVE 或 AW_VER_NEGATIVE)中的一种。<br>下面写一个例子给大家参考:<br>若 Form1 是程序主窗体, Form2 是程序子窗体(最好是动态生成的窗体),现在想让Form2在Form1上的一个按扭生成,这里我是让Form2由小变大显示,为了是显示效果更好,你可以在Form2的Create事件中加入:<br>&nbsp; begin<br>&nbsp; &nbsp;Self.Left:= Round(Screen.Width/2-Width/2);<br>&nbsp; &nbsp;Self.Top :=Round(Screen.Height/2-Height/2);<br> end;<br>在Form1窗体的按纽事件中加入:<br>&nbsp; begin<br>&nbsp; &nbsp; Application.CreateForm(TForm2,Form2);<br>&nbsp; &nbsp; AnimateWindow(Form2.Handle,500,AW_CENTER);<br>&nbsp; &nbsp; Form2.Show; //这句比较重要,没有这句就不能控制Form2了,<br>&nbsp; &nbsp; Form2.Visible:=False;<br>&nbsp; &nbsp; Form2.ShowModal;<br>&nbsp; end;<br>
 
procedure TForm1.FormShow(Sender: TObject);<br>var<br>&nbsp; i:integer;<br>begin<br>&nbsp; AnimateWindow(HandLe,80,AW_CENTER);<br>&nbsp; for i:=0 to ControlCount-1 do<br>&nbsp; &nbsp; Controls.Refresh;<br>&nbsp; Form1.BringToFront;<br>end;
 
后退
顶部