第七天、自制网页浏览器
小叮当:小蘑菇,明天我就要回公司上班了,今天想学习一点什么?
小蘑菇:能不能教我做一个好玩的游戏?最好像帝国II那样的。
小叮当:又在说不切实际的,即使我有这个水平,时间也来不及呀。对了,看你正在上网浏览,不如教你做一个浏览器如何?
小蘑菇:那好吧,也只能这样了。不过别太复杂,省得我看起来头晕,呵呵。
小叮当:你想让我教你做复杂的我还没有这么多时间呢!言规正传,用VB制作网页浏览器时候需要使用到WebBrowser这个控件,它就是IE浏览器的窗口。简单的说,任何可以在IE浏览器中显示的文档都可以用WebBrowser控件显示,比如网页、本地HTML文件等。下面就先来定制浏览器所需要的控件。
1、新建一个工程,将Form1的Caption属性设置为“小叮当的浏览器”。
2、然后右击工具箱并选中“MICroSOFt Internet Controls”控件将其添加到工具箱中。这时工具箱中会多了一个地球图标,这所代表的控件就是WebBrowser。
3、将WebBrowser控件放置到Form1窗口中,由于在运行程序之后无法调整这个控件的大小,所以应该根据窗口的大小来调整它的大小,使其能够覆盖到大部分窗口区域。
4、在Form1窗口中添加1个CommandButton控件,将它的Caption属性分别设置为“打开文件”。
5、在Form1窗口中添加一个Common Dialpg控件,用于选择本地硬盘中的HTML文件。
6、添加一个ComboBox控件,用来输入和显示网页地址。
7、右击工具箱并将Microsoft Windows Common Control控件添加到工具箱中,接着添加一个StatusBar控件和一个ProgressBar控件。
所有控件添加完成之后如图所示。
接着我们来看看程序的代码部分:
1、双击Form1窗口,并输入下列代码:
Private Sub Form_Load()
Combo1.Text = ""
Combo1.Top = 0 /设置URL地址栏起始位置
Combo1.Left = 0
WebBrowser1.Top = Combo1.Top + Combo1.Height /设置页面浏览区位置
WebBrowser1.Left = 0
Form_Resize
StatusBar1.Style = sbrSimple
ProgressBar1.Zorder
End Sub
2、选择Form1的“Resize”并输入下列代码:
Private Sub Form_Resize()
On Error GoTo a
Combo1.Width = Form1.Width - 100 /URL地址栏宽度随窗口大小调整而变化
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:
End Sub
3、双击Combo1控件,并输入下列代码:
Private Sub Combo1_Click()
WebBrowser1.Navigate Combo1.Text /打开指定网址
End Sub
4、选择Combo1控件的“KeyDown”并输入下列代码:
Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim I As Long
Dim existed As Boolean
If KeyCode = 13 Then
If Left(Combo1.Text, 7) <> "http://"Then /如果输入网址不是以“http://”开头则自动添加
Combo1.Text = "http://"+ Combo1.Text
End If
WebBrowser1.Navigate Combo1.Text /URL地址栏保存的网站地址
For I = 0 To Combo1.ListCount - 1
If Combo1.List(I) = Combo1.Text Then
existed = True
Exit For
Else
existed = False
End If
Next
If Not existed Then
Combo1.AddItem (Combo1.Text) /如果输入新的网站则自动保存
End If
End If
End Sub
5、选择 WebBrowser1控件的“DownloadBegin”事件并输入下列代码:
Private Sub WebBrowser1_DownloadBegin()
StatusBar1.SimpleText = "载入中…" /下载开始时状态栏显示“载入中…”
End Sub
6、选择 WebBrowser1控件的“DownloadComplete”事件并输入下列代码:
Private Sub WebBrowser1_DownloadComplete()
StatusBar1.SimpleText = "下载完成" /下载完成时状态栏显示“下载完成”
ProgressBar1.Value = 0
End Sub
7、选择 WebBrowser1控件的“ProgressChange”事件并输入下列代码:
Private Sub WebBrowser1_ProgressChange(ByVal Progress As Long,ByVal ProgressMax As Long)
If ProgressMax = 0 Then Exit Sub /下载进行时进度条变化
ProgressBar1.Max = ProgressMax
If Progress <> -1 And Progress <= ProgressMax Then
ProgressBar1.Value = Progress
End If
End Sub
8、选择 WebBrowser1控件的“TitleChange”事件并输入下列代码:
Private Sub WebBrowser1_TitleChange(ByVal Text As String)
Combo1.Text = WebBrowser1.LOCationURL
End Sub
9、双击CommandButton1控件并输入下列代码:
Private Sub Command1_Click()
CommonDialog1.ShowOpen /激活打开文件对话框选择文件
WebBrowser1.Navigate CommonDialog1.FileName
End Sub
小蘑菇:我来试试,看看能不能浏览电脑爱好者网站。果然可以正常显示,哈哈,虽然界面丑陋了一些,但是基本功能还是可以实现的呢,其余的美容工作就交给我来搞定吧。
小叮当:我教你的只是最基本的一些编程思想而已,别以为我不会美容界面,只是想给你一个机会锻炼一下而已。
小蘑菇:放心吧,叮当姐姐,我一定会好好学习,等毕业之后也要像你一样成为专业的程序员,到时候咱们联手制作出一些重量级的软件,那就赚翻了,哈哈哈哈。
小叮当:……
各位朋友,在这一个星期之内教给了小蘑菇七个实例,你是否也从中学到一二呢?也许你会对小蘑菇说的制作重量级软件有些半信半疑,不过那也没准,当初比尔不也就是用Basic起家的吗?何况现在我们使用的是功能更为强大的VB呢?实在不行,还有一个强力后盾——叮当姐姐在此,所以大家就等着小蘑菇的软件问世吧,到时候一定要多多支持哟!