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