程序的主角是一个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->