程序的主角是一個ActiveX控件:WebBrowser。當然,缺省狀態下VB的工具箱中並沒有它,我們得手工加入,方法是:右擊工具箱,在出現的快捷菜單中選擇“部件...”,確保在彈出的對話框中選中“控件”標簽,找到MicrosoftInternetControls,在它前面的小框中打鉤,然後確定。此時你會發現工具箱中多了兩個小圖標,其中,地球圖標代表的控件正是我們需要的WebBrowser。
由於許多人對WebBrowser控件不是很熟悉,VB的幫助中也沒有有關它的內容(反正我沒有找到),因此有必要介紹一下它的屬性、方法和事件,限於篇幅,我們只涉及程序中用到的:
屬性:LocationURL返回控件顯示WEB頁面的URL。
方法:Navigate轉移到指定的URL或打開指定HTML文件。
事件:1.DownloadBegin下載操作開時觸發。
2.DownloadComplete下載操作完成、終止或失敗時觸發。
3.ProgressChangeWebBrowser控件跟蹤下載操作的過程,並定期觸發此事件。其語法為:SubWebBrowser_ProgressChange(ByValProgressAsLong,ByValProgressMaxAsLong)。Progress變元是當前已下載的數據總量,ProgressMax變元是將要下載的數據總量。
4.TitleChange當前文檔標題改變時觸發
除了WebBrowser控件外,程序還需要一個Label控件:Label1;一個ComboBox控件:
combo1,用來顯示URL地址;一個StatusBar控件:StatusBar1;一個ProgressBar控件:
ProgressBar1,用來顯示下載進度(StatusBar控件和ProgressBar控件是ActiveX控件MicrosoftWindowsCommonControls5.0的成員,加入工具箱的方法同WebBrowser控件),這些控件的屬性值都用缺省值。
以下是程序清單:
OptionExplicit
PrivateSubForm_Load()
Me.Caption=“MyExplorer”
Label1.Caption=“URL”
Combo1.Text=“”
Combo1.Top=Label1.Height
Combo1.Left=0
WebBrowser1.Top=Combo1.Top+Combo1.Height
WebBrowser1.Left=0
Form_Resize
StatusBar1.Style=sbrSimple
ProgressBar1.ZOrder
EndSub
PrivateSubForm_Resize()
OnErrorGoToa
Combo1.Width=Form1.Width-100
WebBrowser1.Width=Combo1.Width
WebBrowser1.Height=Form1.Height-Combo1.Height-1000
ProgressBar1.Top=Me.Height-StatusBar1.Height-330
ProgressBar1.Left=0.25*StatusBar1.Width
ProgressBar1.Width=0.75*Me.Width-250
a:
EndSub
PrivateSubCombo1_Click()
`轉到指定網址
WebBrowser1.NavigateCombo1.Text
EndSub
PrivateSubCombo1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
DimiAsLong
DimexistedAsBoolean
IfKeyCode=13Then
IfLeft(Combo1.Text,7)<>“http://”Then
Combo1.Text=“http://”+Combo1.Text
EndIf
WebBrowser1.NavigateCombo1.Text
Fori=0ToCombo1.ListCount-1
IfCombo1.List(i)=Combo1.TextThen
existed=True
ExitFor
Else
existed=False
EndIf
Next
IfNotexistedThen
Combo1.AddItem(Combo1.Text)
EndIf
EndIf
EndSub
PrivateSubWebBrowser1_DownloadBegin()
`下載開始時狀態欄顯示“NowLinking...”
StatusBar1.SimpleText=“NowLinking...”
EndSub
PrivateSubWebBrowser1_DownloadComplete()
`下載完成時狀態欄顯示“LinkFinished”
StatusBar1.SimpleText=“LinkFinished”
ProgressBar1.Value=0
EndSub
PrivateSubWebBrowser1_ProgressChange(ByValProgressAsLong,
ByValProgressMaxAsLong)
`下載進行時進度條變化
IfProgressMax=0ThenExitSub
ProgressBar1.Max=ProgressMax
IfProgress<>-1AndProgress<=ProgressMaxThen
ProgressBar1.Value=Progress
EndIf
EndSub
PrivateSubWebBrowser1_TitleChange(ByValTextAsString)
Combo1.Text=WebBrowser1.LocationURL
EndSub->