在VB中制作單獨程序封面的2種方法
發表時間:2023-08-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]這里所謂的單獨封面,是只獨立應用程序窗口本身的一個窗口,這個窗口在程序運行時首先彈出屏幕,用于裝飾程序本身,或簡單的演示一下程序的優越性。這樣的封面在很多專業的WINDOWS程序中均存在,在VB中可...
這里所謂的單獨封面,是只獨立應用程序窗口本身的一個窗口,這個窗口在程序運行時首先彈出屏幕,用于裝飾程序本身,或簡單的演示一下程序的優越性。這樣的封面在很多專業的WINDOWS程序中均存在,在VB中可有兩種簡單的方法實現這一功能。
第一種方法:多窗體編程方法
此方法是通常采用的方法,即在程序中創建兩個或兩個以上的Form窗體,把其中的一個作為專門的程序封面制作場所,具體方法:
1、創建一個新項目Form1,并在此窗體內安放Command1命令按鈕,在Command1-Click()事件中輸入結束程序代碼“END”。
2、單擊菜單的“Insert"項目,加入一個新窗體Form1。
3、雙擊Form1窗體空白處,在Form1-Load()事件中輸入如下代碼,用于隱藏主窗體Form1,置第二窗體為最大模式,并在運行程序首先顯示和二窗體:
Private Sub Form-Load () ’隱藏主窗口
Form1.Visible = 0 ’窗口2最大模式
Form2.WindowState =2 ’顯示窗口2
Form2.Show
End Sub
4、 在窗體Form2中定義全程變量:
Dim strr1 As String
Dim i As Integer
5、在窗體Form2中放入一個時間控件Timer1。
6、在窗體Form2中的Form-Load ()事件中輸入以下代碼,用于在窗體2中顯示圖像,并置時間控件頻率:
Private Sub Form-Load ()
Form2.Picture = LoadPicture("c:\windows\setup.bmp")
Timer1.Interval = 10
i =0
End Sub
7、在時間控件Timer1- Timer1()事件中進行程序封面的制作工作,演示簡單的動畫,并控制此動畫運行一段時間后自動停止,關閉程序封面,返回程序主窗口;下面的代碼實現在一個圖片上隨機顯示字符串,顯示30次字符串后自動退出。
Private Sub Timer1-Timer ()
Strr1 = "程序封面演示“
With Form2
.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) ’隨機變化字體
End With
hh=Form2.TextHehght (strr1) ’取字符串高度
ww= Form2.TextWidth (strr1) ’取字符串寬度
x=Rnd * ( Form2.ScaleWidth-ww) ’隨機改變坐標
y=Rnd *( Form2.ScaleHeight-hh)
Form2.Current X=x
Form2.Current Y=y
Form2.Print strr1 ’顯示字符
i = i +1 ’計數
If i >30 Then
Unload Me ’關閉封面
Form1.Show ’調入主窗口
Timer1.Enabled =False ’關閉時間控件
End If
End Sub
8、為了能夠人為地控制程序封面的停留時間,可在窗體Form2鼠標單擊事件中安放退出封面代碼:
Private Sub Form-Click ()
Unload Me
Form1.Show
Timer1.Enabled =False ’關閉時間控件
End If
End Sub
至此工作全部完成,當運行程序時,首先彈出程序封面,封面上顯示一幅。BMP圖像,之后在此圖像上進行隨機字符串的顯示,字符串的位置、字體、字號、前景色等值都是隨機變化的,顯示30次后自動關閉封面返回主窗口,演示過程中用鼠標單擊窗口也會返回主窗口,在主窗口中按下結束按鈕退出程序。具體操作時還有很多其它技巧,比如可以置第二個窗體為主窗體,這樣運行時可自動先彈出程序封面,可省略隱藏窗體和調入窗體的過程,另外第二窗體也可以在程序運行時由代碼動態生成,這樣編程時復雜一些,但有利于程序代碼的管理;程序封面的具體制作過程,有許多動態圖像控制方法可以使用,只要靈活動用VB的作圖方法,再加上一些必要的API函數的配合,會制作出理想的程序封面。
第二種方法:隱藏控件方法
多窗口編程存在著一定的復雜性,需要對多個窗體的·Frm文件進行管理,編碼時還需要頻繁地在多個窗口間進行轉換。實際上通過一個窗體也可以編制出類似的封面效果。基本原理就是在程序運行時首先通過VISIBLE屬性隱藏全部控件,然后在主窗體內進行程序封面設計和演示,延時一定時間再恢復所有控件的顯示,即達到了獨立程序封面的制作過程。由于窗體內的控件很多,逐一隱藏或顯示非常繁瑣,可采用容器控件簡化操作過程,即把控件全部放到Frame1等控件上,這樣只要執行Frame1.Visible=0,即可使其上面的所有控件隱藏起來。
c由于程序只涉及一個窗體,程序設計的大部分工作只是編碼過程,所以不再分步介紹。在窗體Form1中安放一個時間控件Timer1 和一個容器控件Frame1,再在Frame1上安放一個命令按鈕Command1,具體程序設計時可把所有主程序工作控件放在Frame1上;之后把下面的代碼填入相應的事件之中即可完成全部程序設計工作。運行此程序后首先在全屏幕窗體內顯示圖像,并從左上角開始逐漸放大字符串“程序封面演示”,放大過程中顏色發生平滑變化,形成美麗的拖尾效果,連續顯示5次后自動關閉封面,返回主程序窗口,同樣立即關閉程序封面,返回主程序窗口,單擊主窗體中的命令按鈕退出程序。
’定義全程變量
Dim i ,j As Integer
’退出程序按鈕
Private Sub Command1-Click ()
End
End Sub
’單擊窗體關閉封面
Private Sub Form-Click ()
Frame1.Visible =1 ’恢復容器控件
timer1.Enabled =False ’關閉時間控件
Form1.WindowState =0 ’恢復缺省窗口模式
End Sub
’準備工作
Private Sub Form -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:\windows\setup.bmp") ’裝入圖像
Form1.ScaleMode=3 ’置坐標刻度
Form1.FontName =“黑體” ’置字體名稱
End Sub
’封面制作 (動畫演示)
Private Sub timer1-Timer ()
Strr ="程序封面演示"
With Form1 ’透明顯示
.Font.Transparent =True
.Font.Size = i + 1 ’放大字號
.Font.Italic =True ’斜體有效
.ForeColor=RGB(i*3,56,256-i*3) ’平滑變化顏色
End With
string =strr
Form1.Current X=i ’連續改變坐標
Form1.Current Y=i
Form1.Print stringg ’顯示字符串
i = i +1
If i >72 Then ’放大到72號字
j =j +1 ’循環計數
i =0
Form1.Current X=72
Form1.Current Y=72
Form1.ForeColor =RGB(255,56,0) ’重新顯示一次字符
Form1.Print stringg
End If
If j =5 Then ’動畫計數
Frame1.Visible =1 ’顯示容器控件
timer1.Enabled =False ’關閉時間控件
Form1.WindowState=0 ’恢復窗口模式
End If
End Sub