按不同显示方式打开窗体
O: o9 O4 E# ^# ~* g3 \函 数:AnimateWindow
- V$ J9 d0 ^8 C* J 函数功能:该函数能在显示与隐藏窗口时能产生特殊的效果。有两种类型的动画效果:滚动动画和滑动动画。
+ b# R) f$ G# V3 K) O2 c 函数原型:BOOL AnimateWindow(HWND hWnd,DWORD dwTime,DWORD dwFlags);/ n4 }# R7 s& r' q
参数:
- Z/ A7 t0 y1 A$ Z5 R hWnd:指定产生动画的窗口的句柄。
: b. M. i5 w" K P dwTime:指明动画持续的时间(以微秒计),完成一个动画的标准时间为200微秒。
7 q- B; U6 B: u9 U9 F dwFags:指定动画类型。这个参数可以是一个或多个下列标志的组合。
2 s' k7 h- M2 u6 ~$ u& w) ]" _3 ^ 标志描述:
6 N1 i S/ {* w2 B: n AW_SLIDE:使用滑动类型。缺省则为滚动动画类型。当使用AW_CENTER标志时,这个标志就被忽略。& T1 o( G1 @; o7 _
AW_ACTIVE:激活窗口。在使用了AW_HIDE标志后不要使用这个标志。" X+ \/ c( T4 b8 s6 @) `: n
AW_BLEND:使用淡出效果。只有当hWnd为顶层窗口的时候才可以使用此标志。9 h" r" o; \* f3 U8 N6 v- @, c
AW_HIDE:隐藏窗口,缺省则显示窗口。
3 @) |! s2 u7 w& ?" {/ ?3 h AW_CENTER:若使用了AW_HIDE标志,则使窗口向内重叠;若未使用AW_HIDE标志,则使窗口向外扩展。
$ N/ U' W# k* h& ?) p. k- ^( M AW_HOR_POSITIVE:自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。
* c2 m; k7 a' X1 F. b% p AW_VER_POSITIVE:自顶向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。2 u3 z9 i; t4 \: N: a$ m% X
AW_VER_NEGATIVE:自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志将被忽略。, j5 u. M1 t& Q
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。
; p$ ~" A" W- q- j2 l& F6 T/ E9 H 在下列情况下函数将失败:
0 ~+ M. n# P% |+ }4 W! r0 y5 p! P* Q5 G 窗口使用了窗口边界;窗口已经可见仍要显示窗口;窗口已经隐藏仍要隐藏窗口。若想获得更多错误信息,请调用GetLastError函数。
9 p$ H: f: h' v; A C5 n7 @ 备注:可以将AW_HOR_POSITIVE或AW_HOR_NEGTVE与AW_VER_POSITVE或AW_VER_NEGATIVE组合来激活一个窗口。
' F9 p% `! i" r1 [) t! Q 可能需要在该窗口的窗口过程和它的子窗口的窗口过程中处理WM_PRINT或WM_PRINTCLIENT消息。对话框,控制,及共用控制已处理WM_PRINTCLIENT消息,缺省窗口过程也已处理WM_PRINT消息。; W# N! n+ {2 d
速查:Windows NT:5.0以上版本:Windows:98以上版本;Windows CE:不支持;头文件:Winuser.h;库文件:user32.lib。
" v+ q% f: K: ?$ G4 ]! j) x! o 举例:" i( r$ ?2 {% [/ J8 Q) a
点击浏览该文件6 k/ _# T2 E v% A5 f
在窗体加载(Load)事件中,加入代码:/ ]7 }5 \7 q4 C7 F
Private Sub Form_Load(); c2 m( E! M& J* _& ~
Dim rgbColor4 z9 P. U! R2 j: ^ h( h
Dim iMode
/ Z- d! b' @5 m2 B4 j$ A- Y! ^$ h rgbColor = Me.主体.BackColor ' 保存原始背景颜色
: y) `& C7 f; Z- |3 U iMode = 1 ' 设置显示方式/ O5 t+ l5 W+ G! [/ u
' iMode 方式: 1, 3 从左至右
, i0 W+ [9 [" s1 \, h ' 2 从右至左
# |8 b+ G: m8 t/ v' u2 ^ ' 4,12 从上至下* @% _! w) f$ ?6 O( E! B
' 5,7,13,15 从左上至右下" P7 |; w! \6 B0 v
' 6,14 从右上至左下" p w5 Q" G* @" q/ s9 h& R
' 8 从下至上
, b) Y; G. \! c _9 T ' 9,11 从左下至右上
0 F7 Y% V/ K* \: \ ' 10 从右下至左上# E* c8 I# ^- q5 a7 w
' 16-31 从内至外
" {5 t. Q: @- j8 d* ] AnimateWindow Me.hWnd, 200, iMode ' 实现( o2 B1 A3 o, n
Me.主体.BackColor = rgbColor ' 恢复背景色
% ]# F7 y5 T7 } Me.Repaint ' 重绘窗体
- @/ r" l X/ Z End Sub |