在一些软件演示中,这一屏内容到下一屏内容间往往以一些有趣的清屏图案来相互切换,有的像演出舞台上的开幕、闭幕,有的像百叶窗,也有一些圆形、菱形等形态各异的清屏图案。VB作为一门优秀的WINDOWS下的开发语言,其图形功能也很强。我们完全可以用其提供的画线语句作出上述的清屏图案,下面的程序给出了常见的清屏图案程序:) c% H+ M# _' L# Y% Q
Sub FilSCrO'设置背景色
9 M, P% T# `8 f A* _ }6 P Me.BackColor=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))
" _: ?6 q* H( ]7 [+ N7 W o End Sub+ a& A" T" H+ R1 }
Sub ClrScrl()'从左右两边到中间清屏
: ?$ B$ P, N$ u& H0 b Dim i As Integer:Randomize:color=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))
* F; H6 }4 G8 ]) H# k For i=0 To ScaleWidth/2
! N- G0 g1 m3 ]& R, P: m/ a' O Line(i,0)-(i,ScaleHeight),color
8 u- t8 A1 r% E7 W Line(ScaleWidth-i,0)-(ScaleWidth-i,ScaleHeight),color
9 G; Z' \% m6 k2 e Next i5 B5 E: Y1 }4 C" T" S& `4 A1 l
End Sub
1 S/ {9 p5 ]% v& L: ~; N1 d Sub ClrSer20'从中间到左右两边清屏
- M) m0 |9 B$ q. v Dim i As Integer:Randomize:color=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))
) A# A6 X, B. Q$ W y for i=ScaleWidth/2 To 0 Step -13 J5 ^+ }+ U1 G3 X. P
Line(i,0)-(i,ScaleHeight-1),color
: i) V" U, E P% s5 u Line(ScaleWidth-i,0)-(ScaleWidth-i,ScaleHeight),color
( c4 Q# ~( Z" W+ W [1 a3 A Next i
. J/ _% |+ u8 z, y. E0 I |% F End Sub
1 F! h' u. p' M' `9 T Sub ClrScr30'从上(顶)下(低)到中间清屏
7 {' u7 _) s4 Z* w" \ Dim i As Integer:Randomize:color=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))6 B: R0 e. d8 H( f5 O
For i=0 To ScaleHeight/2
: z) h1 l: h( ^! e9 y Line(0,i)-(ScaleWidth,i),color8 i' R# H0 _3 @. T
Line(0,ScaleHeight-i)-(ScaleWidth,ScaleHeight-i),color- `2 V v9 e& P" ^
next i# T) b, }2 o# K: O, H, |
End Sub3 W7 ~* T) `3 g3 q: w9 D
Sub ClrScr40'从中间到上(顶)下(底)清屏
5 j8 [8 E# M/ K( x/ s( i Dim i As Integer:Randomize:color=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))
" Q& _% b- j1 {0 D5 T For i=ScaleHeight/2 To 0 Step -1
! ]8 c$ X0 t0 D1 b Line(0,i)_(ScaleWidth,i),color
- I4 ?) B# j# B% J3 F8 i Line(0,ScaleHeight-i)-(ScaleWidth,ScaleHeight-i),color) U0 v6 ~% `! P/ n% l: [: r
Next i4 M }; p3 p+ S M
End Sub
7 M# [. f' R( \ Sub ClrScr50'菱形清屏,从四角向中心* s7 j( c# a3 J( E
Dim i,j As Integer:Randomize:color=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))2 e% E& A; R0 Y% T, G/ e- ~2 Y
For i=0 To ScaleWidth Sep 200+ p! }7 l& t; R9 M
For j=0 To ScaleHeight Step200*ScaleHeight/ScaleWidth
m3 Y8 f& {0 B U: m' v5 { Line(i,0)-(0,j),color' B$ u w0 j1 u; H
Line(ScaleWidth-i,ScaleHeight)-(ScaleWidth,ScaleHeight-j),color$ F. r" h8 b' [* e
Line(0,ScaleHeight-j)-(i,ScaleHeight),color
V" w% Z6 w: }, Q, k, v Line(ScaleWidth-i,0)-(ScaleWidth,ScaleHeight-j),color
, t, m" K8 j9 x Next j
6 B0 L, x) \4 ] [2 b2 ? Next i
- e( S/ l' t9 P End Sub, t9 q: Y7 J; @: y" P9 b: G/ f( ]4 e
Sub ClrScr60'圆形清屏,由大至小从外围向中心3 \( H, H6 X$ b
Dim i As Integer:Randomize:color=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))
! T: J1 n. D+ C$ j/ D1 C For i=ScaleWidth To 0 Step-3
# Q, R3 u6 t% H6 _/ g6 W Circle(ScaleWidth/2,ScaleHeight/2,i/2,color8 e8 i' `+ |. _) j1 G8 e( R4 |
Next i
5 r& ]- V9 \; L" u* v End Sub; E( C1 V& d7 g" D1 p
Sub ClrScr70'圆形清屏,由小至大从中心向外围
; f% d8 l8 t- D1 g Dim i As Integer:Randomize:color=RGB(Int(Rnd*256),Int(Rnd*256),Int(Rnd*256))3 ^/ E* X+ c, P% }2 w2 ]
For i=0 To ScaleHeight Step 3
2 A n G! D" U Circle(ScaleWidth/2,ScaleHeight/2),i/2,color4 T4 T# D& A) |7 H2 s \, W: Q
Next i9 [3 Y+ l* I; N0 h
End Sub
2 G8 \# n* p B' Z4 e0 ~ ‘以上程序作为定义的子函数,置于General间
* K* R- h5 _& ~( N4 P& K Sub Form_Activate()
: a' c+ L! ` ?) H1 J5 T! W$ t) } FillSCr;ClrScr1;ClrScr2;ClrScr3;ClrScr4;ClrScr5;ClrScr7;ClrScr64 [6 [7 ~1 I4 w; p/ [2 a9 B
End Sub" J( ?6 I8 q d- z
Private Sub Form_Click()
1 k. K+ U8 w: r End# ^9 A0 \7 z/ Z# w& {% P5 L5 |! }
End Sub+ \/ n' e- [$ Y+ @5 X# S
注:该程序在VB3.0、VB4.0、VB5.0下均通过,程序一开始运行即先后演示从左右到中间,从中间到左右,从上下到中间,从中间到上下,从四角向中心(菱形),从中心向外围(圆形),从外围向中心(圆形)等清屏图案。最后两个清屏图案很有趣,清屏结束后还会形成从中心到四角的放射状图案,似孔雀开屏一样。有兴趣的读者不防一试。另外,请注意FORM(窗体)的AutoRedraw属性值应为False,若为True,则将看不到效果。(昆明 无为): C; V/ x: d# c8 t: @) S- |# \
各种清屏特效的编程实现似乎是老生常谈,但从来稿的情况上看,我们发现大多数编程仍然局限于一些比较陈旧的内容,因此,刊本文是希望能有更多的朋友把VFP、VB、Delphi等流行软件开发工具的使用心得与广大读者共享。 |