PrivateSubForm-Load()’隱藏主窗口
Form1.Visible=0’窗口2最大模式
Form2.WindowState=2’顯示窗口2
Form2.Show
EndSub
Dimstrr1AsString
DimiAsInteger
PrivateSubForm-Load()
Form2.Picture=LoadPicture("c:windowssetup.bmp")
Timer1.Interval=10
i=0
EndSub
PrivateSubTimer1-Timer()
Strr1="程序封面演示“
WithForm2
.Font.Transparent=True’透明顯示字符
.Font.Size=Rnd*30 10’隨機變化字號
.Font.Italic=True’斜體有效
.ForeColor=RGB(Rnd*256,Rnd*256,Rnd*256)’隨機變化前景
.FontName=Screen.Fonts(Rnd*7 14)’隨機變化字體
EndWith
hh=Form2.TextHehght(strr1)’取字符串高度
ww=Form2.TextWidth(strr1)’取字符串寬度
x=Rnd*(Form2.ScaleWidth-ww)’隨機改變坐標
y=Rnd*(Form2.ScaleHeight-hh)
Form2.CurrentX=x
Form2.CurrentY=y
Form2.Printstrr1’顯示字符
i=i 1’計數
Ifi>30Then
UnloadMe’關閉封面
Form1.Show’調入主窗口
Timer1.Enabled=False’關閉時間控件
EndIf
EndSub
8、為了能夠人為地控制程序封面的停留時間,可在窗體Form2鼠標單擊事件中安放退出封面代碼:
PrivateSubForm-Click()
UnloadMe
Form1.Show
Timer1.Enabled=False’關閉時間控件
EndIf
EndSub
至此工作全部完成,當運行程序時,首先彈出程序封面,封面上顯示一幅。BMP圖像,之後在此圖像上進行隨機字符串的顯示,字符串的位置、字體、字號、前景色等值都是隨機變化的,顯示30次後自動關閉封面返回主窗口,演示過程中用鼠標單擊窗口也會返回主窗口,在主窗口中按下結束按鈕退出程序。具體操作時還有很多其它技巧,比如可以置第二個窗體為主窗體,這樣運行時可自動先彈出程序封面,可省略隱藏窗體和調入窗體的過程,另外第二窗體也可以在程序運行時由代碼動態生成,這樣編程時復雜一些,但有利於程序代碼的管理;程序封面的具體制作過程,有許多動態圖像控制方法可以使用,只要靈活動用VB的作圖方法,再加上一些必要的API函數的配合,會制作出理想的程序封面。
多窗口編程存在著一定的復雜性,需要對多個窗體的·Frm文件進行管理,編碼時還需要頻繁地在多個窗口間進行轉換。實際上通過一個窗體也可以編制出類似的封面效果。基本原理就是在程序運行時首先通過VISIBLE屬性隱藏全部控件,然後在主窗體內進行程序封面設計和演示,延時一定時間再恢復所有控件的顯示,即達到了獨立程序封面的制作過程。由於窗體內的控件很多,逐一隱藏或顯示非常繁瑣,可采用容器控件簡化操作過程,即把控件全部放到Frame1等控件上,這樣只要執行Frame1.Visible=0,即可使其上面的所有控件隱藏起來。
Dimi,jAsInteger
’退出程序按鈕
PrivateSubCommand1-Click()
End
EndSub
PrivateSubForm-Click()
Frame1.Visible=1’恢復容器控件
timer1.Enabled=False’關閉時間控件
Form1.WindowState=0’恢復缺省窗口模式
EndSub
PrivateSubForm-Load()
Form1.WindowState=2’窗口最大化
Frame1.Width=Form1.Width’調整容器控件尺寸
Frame1.Height=Form1.Height
Frame1.Top=0’調整容器控件位置
Frame1.Left=0
Frame1.Visible=0’隱藏容器控件
timer1.Interval=10’置時間頻率
Form1.Picture=LoadPicture("c:windowssetup.bmp")’裝入圖像
Form1.ScaleMode=3’置坐標刻度
Form1.FontName=“黑體”’置字體名稱
EndSub
PrivateSubtimer1-Timer()
Strr="程序封面演示"
WithForm1’透明顯示
.Font.Transparent=True
.Font.Size=i 1’放大字號
.Font.Italic=True’斜體有效
.ForeColor=RGB(i*3,56,256-i*3)’平滑變化顏色
EndWith
string=strr
Form1.CurrentX=i’連續改變坐標
Form1.CurrentY=i
Form1.Printstringg’顯示字符串
i=i 1
Ifi>72Then’放大到72號字
j=j 1’循環計數
i=0
Form1.CurrentX=72
Form1.CurrentY=72
Form1.ForeColor=RGB(255,56,0)’重新顯示一次字符
Form1.Printstringg
EndIf
Ifj=5Then’動畫計數
Frame1.Visible=1’顯示容器控件
timer1.Enabled=False’關閉時間控件
Form1.WindowState=0’恢復窗口模式
EndIf
EndSub->