瀏覽器是閱讀WWW上的信息資源的重要的客戶端軟件,眾所周 知的有Microsoft Internet Explorer和Netscape Navigator瀏覽 器。它們功能強(qiáng)大,界面友好,是廣大網(wǎng)民在Internet上沖浪的好 工具。對(duì)于多媒體應(yīng)用軟件及教育軟件的開(kāi)發(fā)者來(lái)說(shuō),可能更希望 有自己定制的瀏覽器集成到自己開(kāi)發(fā)的產(chǎn)品中來(lái),以增強(qiáng)應(yīng)用軟件 產(chǎn)品的功能,擴(kuò)充使用多媒體信息的方式,使自己的產(chǎn)品更加先 進(jìn)、更加具有網(wǎng)絡(luò)化特色,從而輕松平滑地融入到Internet世界中 去。但是,這些專業(yè)性的Web瀏覽器的安裝配置較為復(fù)雜,程序文 件又很大,對(duì)于應(yīng)用軟件開(kāi)發(fā)者來(lái)說(shuō)還有版權(quán)問(wèn)題,更不具有自己 需要的特色,要想集成到自己的應(yīng)用產(chǎn)品中,有可能融合不平滑, 還會(huì)產(chǎn)生很多問(wèn)題,怎么辦呢?Visual Basic 5.0為軟件開(kāi)發(fā)人員 提供了現(xiàn)成的窗體和控件,只要稍稍熟悉VB編程,就可以輕松地設(shè) 計(jì)出具有專業(yè)化界面的、有自己特色的Web瀏覽器來(lái)。而且,原有 的軟件開(kāi)發(fā)工具可能不支持的媒體元素如Gif動(dòng)畫(huà)、.au格式聲音等 也都能方便地引用到您的應(yīng)用軟件產(chǎn)品中來(lái),而這些媒體元素在 Internet上幾乎可以說(shuō)是取之不盡,用之不竭的。下面就對(duì)用 Visual Basic 5.0設(shè)計(jì)一個(gè)簡(jiǎn)單的Web瀏覽器的方法加以說(shuō)明。
1.用Browser窗體設(shè)計(jì)瀏覽器
Visual Basic 5.0的專業(yè)版提供了瀏覽器窗體(Browser Form),用它來(lái)設(shè)計(jì)自己的瀏覽器相當(dāng)方便,許多控件不用一個(gè)個(gè) 地去設(shè)置和編寫代碼了,在此基礎(chǔ)上還可以增添自己想增加的控件 和菜單等。下面對(duì)制作一個(gè)簡(jiǎn)單的瀏覽器的方法和步驟加以說(shuō)明。
(1)在VB中打開(kāi)一個(gè)新的項(xiàng)目(New Project);
(2)在項(xiàng)目(Project)資源管理器窗口中,選定Form1窗體并按 鼠標(biāo)右鍵,彈出菜單后,用刪除窗體(Remove Form)命令刪除Form1 窗體;
(3)選定項(xiàng)目Project1,單擊鼠標(biāo)右鍵,彈出菜單后選定添加 (Add)項(xiàng),再選擇添加窗體(Add Form)命令。彈出添加窗體(Add Form)對(duì)話框后,在其中選擇瀏覽器(Browser)打開(kāi)它;
(4)在項(xiàng)目Project1的對(duì)象窗口中可以看到tbToolbar控件中已 經(jīng)設(shè)置有Back(向后)、Forward(向前)、Stop(停止)、 Refresh(刷新)、Home(歸位)、Search(搜索)等命令按鈕, 還可以向tbToolbar控件中添加Open(打開(kāi))、Navigate(導(dǎo) 航)、Exit(退出)等命令按鈕,其方法是:打開(kāi)tbToolbar控件 的Properties(屬性)頁(yè),在Button(按鈕)選項(xiàng)卡中單擊Insert Button按鈕來(lái)插入按鈕,在以上命令按? Caption屬性項(xiàng)中輸入 相應(yīng)的按鈕名稱;
(5)由于新添加的Open(打開(kāi))、Navigate(導(dǎo)航)、Exit (退出)等命令按鈕上沒(méi)有相應(yīng)的圖標(biāo),故可以自行添加,其方法 是:找到名為ImlIcons的ImageList控件,打開(kāi)其屬性頁(yè),在 Images選項(xiàng)卡中插入自己喜歡的圖標(biāo)。然后在tbToolbar控件的 Properties(屬性)頁(yè)中設(shè)置相應(yīng)的Index值;
(6)從工具箱中選出CommonDialog(通用對(duì)話框)控件添加到 瀏覽器窗體中,將其命名為brwCommonDialog,為編寫Open按鈕相 應(yīng)的事件代碼作準(zhǔn)備;
(7)在frmBrowser窗體的屬性窗口中,將MDIChild屬性值設(shè)置 為False;
(8)在項(xiàng)目Project1的屬性設(shè)置窗口中設(shè)置啟動(dòng)對(duì)象為 frmBrowser窗體;
(9)在tbToolbar控件的代碼窗口中編寫Open(打開(kāi))、 Navigate(導(dǎo)航)、Exit(退出)等命令按鈕的代碼;
(10)在其他對(duì)象的代碼窗口中編寫或修改相應(yīng)的代碼。
Option Explicit
Public StartingAddress As String
Dim mbDontNavigateNow As Boolean
Private Sub Form_Load()
On Error Resume Next
Me.Show
tbToolBar.Refresh
Form_Resize
cboAddress.Move 50, lblAddress.Top + lblAddress.Height + 15
If Len(StartingAddress) > 0 Then
cboAddress.Text = StartingAddress
cboAddress.AddItem cboAddress.Text
試圖定位到起始地址
timTimer.Enabled = True
brwWebBrowser.Navigate StartingAddress
End If
End Sub
Private Sub brwWebBrowser_DownloadComplete()
On Error Resume Next
Me.Caption = brwWebBrowser.LocationName
End Sub
Private Sub brwWebBrowser_NavigateComplete(ByVal URL As String)
Dim i As Integer
Dim bFound As Boolean
Me.Caption = brwWebBrowser.LocationName
For i = 0 To cboAddress.ListCount - 1
If cboAddress.List(i) = brwWebBrowser.LocationURL Then
bFound = True
Exit For
End If
Next i
mbDontNavigateNow = True
If bFound Then
cboAddress.RemoveItem i
End If
cboAddress.AddItem brwWebBrowser.LocationURL, 0
cboAddress.ListIndex = 0
mbDontNavigateNow = False
End Sub
Private Sub cboAddress_Click()
If mbDontNavigateNow Then Exit Sub
timTimer.Enabled = True
brwWebBrowser.Navigate cboAddress.Text
End Sub
Private Sub cboAddress_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = vbKeyReturn Then
cboAddress_Click
End If
End Sub
Private Sub Form_Resize()
cboAddress.Width = Me.ScaleWidth - 100
brwWebBrowser.Width = Me.ScaleWidth - 100
brwWebBrowser.Height = Me.ScaleHeight - (picAddress.Top + picAddress.Height) - 100
End Sub
Private Sub timTimer_Timer()
If brwWebBrowser.Busy = False Then
timTimer.Enabled = False
Me.Caption = brwWebBrowser.LocationName
Else
Me.Caption = "運(yùn)行中..."
End If
End Sub
Private Sub tbToolBar_ButtonClick(ByVal Button As Button)
On Error Resume Next
timTimer.Enabled = True
Select Case Button.Key
Case "Exit"
Unload Me
Case "Back"
brwWebBrowser.GoBack
Case "Forward"
brwWebBrowser.GoForward
Case "Refresh"
brwWebBrowser.Refresh
Case "Home"
brwWebBrowser.GoHome
Case "Search"
brwWebBrowser.GoSearch
Case "Open"
brwCommonDialog.ShowOpen
cboAddress.Text = brwCommonDialog.filename
Case " Navigate"
brwWebBrowser.Navigate cboAddress.Text
Case "Stop"
timTimer.Enabled = False
brwWebBrowser.Stop
Me.Caption = brwWebBrowser.LocationName
End Select
End Sub
2.用WebBrowser控件設(shè)計(jì)瀏覽器
用WebBrowser控件設(shè)計(jì)瀏覽器的方法相對(duì)前面的方法而言,具 體操作要多一點(diǎn),因?yàn)閷?duì)應(yīng)的每個(gè)控件都要設(shè)置屬性并編寫相應(yīng)的 代碼,從而編程量也要相對(duì)地大一些。下面來(lái)具體說(shuō)明其方法和步 驟。
(1)新建一個(gè)項(xiàng)目并打開(kāi)一個(gè)新的窗體Form1;
(2)用鼠標(biāo)右鍵單擊工具箱以添加新的部件Microsoft Common Dialog Controls、Microsoft Windows Common Controls 5.0和 Microsoft Internet Controls;
(3)在窗體Form1中添加一個(gè)Toolbar控件Toolbar1,然后打開(kāi) Toolbar1控件的Properties(屬性)頁(yè),在Button(按鈕)選項(xiàng)卡 中單擊Insert Button按鈕,增加Back(向后)、Forward(向 前)、Stop(停止)、Refresh(刷新)、Home(歸位)、Search (搜索)、Open(打開(kāi))、Navigate(導(dǎo)航)、Exit(退出)等常 用命令按鈕;
(4)添加一個(gè)ImageList控件ImageList1到窗體Form1中,打開(kāi) Imagelist1控件的Properties(屬性)頁(yè),在Images(圖象)選項(xiàng) 卡中單擊Insert Picture按鈕,輸入一些對(duì)應(yīng)按鈕的合適的圖標(biāo), 然后到tbToolbar控件的Properties(屬性)頁(yè)中設(shè)置General選項(xiàng) 卡中的ImageList值與Buttons選項(xiàng)卡中的Image值,使上述命令按 鈕與合適的圖標(biāo)相對(duì)應(yīng);
(5)從工具箱中選出CommonDialog(通用對(duì)話框)控件添加到 瀏覽器窗體中,將其命名為CommonDialog1,為編寫與Open按鈕相 應(yīng)的事件代碼作準(zhǔn)備;
(6)添加一個(gè)Label控件Label1到窗體Form1中,將其Caption值 設(shè)置為“地址(URL):”,再在此控件附近合適的位置添加一個(gè) ComboBox控件Combo1,以便生成Web地址的下拉列表框;
(7)添加一個(gè)WebBrowser控件WebBrowser1到窗體Form1中,將 其調(diào)整到合適的位置上;
(8)添加一個(gè)Timer控件Timer1,將其Enabled與Interval值分 別設(shè)置為False和5;
(9)在Form1窗體的屬性窗口中將MDIChild屬性值設(shè)置為 False;
(10)在該項(xiàng)目的屬性設(shè)置窗口中的啟動(dòng)對(duì)象設(shè)置為Form1窗 體;
(11)為對(duì)應(yīng)窗體和每個(gè)控件等對(duì)象編寫相應(yīng)的事件程序代碼, 具體可參照前面的程序代碼,只要更換一下相應(yīng)的窗體或控件等對(duì) 象的名稱,其他的基本相同,在此就不贅述了。
無(wú)論用Visual Basic 5.0現(xiàn)成的瀏覽器(Browser)窗體還是用 WebBrowser控件來(lái)設(shè)計(jì)簡(jiǎn)單的Web瀏覽器都比較容易。就兩種方法 相比較而言,前者因?yàn)g覽器(Browser)窗體本身集成了一些基本的 控件,并且相應(yīng)的代碼已經(jīng)寫好,要做的只是為添加的控件或菜單 等編寫代碼,所以顯得較為簡(jiǎn)單些;而后者因每一個(gè)窗體或控件等 對(duì)象都要進(jìn)行選擇、添加、設(shè)計(jì)、編寫代碼等,所以相對(duì)較為復(fù)雜 些。無(wú)論怎樣都能在此基礎(chǔ)上進(jìn)行擴(kuò)充,從而設(shè)計(jì)出較為高級(jí)的瀏 覽器來(lái)。
1.用Browser窗體設(shè)計(jì)瀏覽器
Visual Basic 5.0的專業(yè)版提供了瀏覽器窗體(Browser Form),用它來(lái)設(shè)計(jì)自己的瀏覽器相當(dāng)方便,許多控件不用一個(gè)個(gè) 地去設(shè)置和編寫代碼了,在此基礎(chǔ)上還可以增添自己想增加的控件 和菜單等。下面對(duì)制作一個(gè)簡(jiǎn)單的瀏覽器的方法和步驟加以說(shuō)明。
(1)在VB中打開(kāi)一個(gè)新的項(xiàng)目(New Project);
(2)在項(xiàng)目(Project)資源管理器窗口中,選定Form1窗體并按 鼠標(biāo)右鍵,彈出菜單后,用刪除窗體(Remove Form)命令刪除Form1 窗體;
(3)選定項(xiàng)目Project1,單擊鼠標(biāo)右鍵,彈出菜單后選定添加 (Add)項(xiàng),再選擇添加窗體(Add Form)命令。彈出添加窗體(Add Form)對(duì)話框后,在其中選擇瀏覽器(Browser)打開(kāi)它;
(4)在項(xiàng)目Project1的對(duì)象窗口中可以看到tbToolbar控件中已 經(jīng)設(shè)置有Back(向后)、Forward(向前)、Stop(停止)、 Refresh(刷新)、Home(歸位)、Search(搜索)等命令按鈕, 還可以向tbToolbar控件中添加Open(打開(kāi))、Navigate(導(dǎo) 航)、Exit(退出)等命令按鈕,其方法是:打開(kāi)tbToolbar控件 的Properties(屬性)頁(yè),在Button(按鈕)選項(xiàng)卡中單擊Insert Button按鈕來(lái)插入按鈕,在以上命令按? Caption屬性項(xiàng)中輸入 相應(yīng)的按鈕名稱;
(5)由于新添加的Open(打開(kāi))、Navigate(導(dǎo)航)、Exit (退出)等命令按鈕上沒(méi)有相應(yīng)的圖標(biāo),故可以自行添加,其方法 是:找到名為ImlIcons的ImageList控件,打開(kāi)其屬性頁(yè),在 Images選項(xiàng)卡中插入自己喜歡的圖標(biāo)。然后在tbToolbar控件的 Properties(屬性)頁(yè)中設(shè)置相應(yīng)的Index值;
(6)從工具箱中選出CommonDialog(通用對(duì)話框)控件添加到 瀏覽器窗體中,將其命名為brwCommonDialog,為編寫Open按鈕相 應(yīng)的事件代碼作準(zhǔn)備;
(7)在frmBrowser窗體的屬性窗口中,將MDIChild屬性值設(shè)置 為False;
(8)在項(xiàng)目Project1的屬性設(shè)置窗口中設(shè)置啟動(dòng)對(duì)象為 frmBrowser窗體;
(9)在tbToolbar控件的代碼窗口中編寫Open(打開(kāi))、 Navigate(導(dǎo)航)、Exit(退出)等命令按鈕的代碼;
(10)在其他對(duì)象的代碼窗口中編寫或修改相應(yīng)的代碼。
Option Explicit
Public StartingAddress As String
Dim mbDontNavigateNow As Boolean
Private Sub Form_Load()
On Error Resume Next
Me.Show
tbToolBar.Refresh
Form_Resize
cboAddress.Move 50, lblAddress.Top + lblAddress.Height + 15
If Len(StartingAddress) > 0 Then
cboAddress.Text = StartingAddress
cboAddress.AddItem cboAddress.Text
試圖定位到起始地址
timTimer.Enabled = True
brwWebBrowser.Navigate StartingAddress
End If
End Sub
Private Sub brwWebBrowser_DownloadComplete()
On Error Resume Next
Me.Caption = brwWebBrowser.LocationName
End Sub
Private Sub brwWebBrowser_NavigateComplete(ByVal URL As String)
Dim i As Integer
Dim bFound As Boolean
Me.Caption = brwWebBrowser.LocationName
For i = 0 To cboAddress.ListCount - 1
If cboAddress.List(i) = brwWebBrowser.LocationURL Then
bFound = True
Exit For
End If
Next i
mbDontNavigateNow = True
If bFound Then
cboAddress.RemoveItem i
End If
cboAddress.AddItem brwWebBrowser.LocationURL, 0
cboAddress.ListIndex = 0
mbDontNavigateNow = False
End Sub
Private Sub cboAddress_Click()
If mbDontNavigateNow Then Exit Sub
timTimer.Enabled = True
brwWebBrowser.Navigate cboAddress.Text
End Sub
Private Sub cboAddress_KeyPress(KeyAscii As Integer)
On Error Resume Next
If KeyAscii = vbKeyReturn Then
cboAddress_Click
End If
End Sub
Private Sub Form_Resize()
cboAddress.Width = Me.ScaleWidth - 100
brwWebBrowser.Width = Me.ScaleWidth - 100
brwWebBrowser.Height = Me.ScaleHeight - (picAddress.Top + picAddress.Height) - 100
End Sub
Private Sub timTimer_Timer()
If brwWebBrowser.Busy = False Then
timTimer.Enabled = False
Me.Caption = brwWebBrowser.LocationName
Else
Me.Caption = "運(yùn)行中..."
End If
End Sub
Private Sub tbToolBar_ButtonClick(ByVal Button As Button)
On Error Resume Next
timTimer.Enabled = True
Select Case Button.Key
Case "Exit"
Unload Me
Case "Back"
brwWebBrowser.GoBack
Case "Forward"
brwWebBrowser.GoForward
Case "Refresh"
brwWebBrowser.Refresh
Case "Home"
brwWebBrowser.GoHome
Case "Search"
brwWebBrowser.GoSearch
Case "Open"
brwCommonDialog.ShowOpen
cboAddress.Text = brwCommonDialog.filename
Case " Navigate"
brwWebBrowser.Navigate cboAddress.Text
Case "Stop"
timTimer.Enabled = False
brwWebBrowser.Stop
Me.Caption = brwWebBrowser.LocationName
End Select
End Sub
2.用WebBrowser控件設(shè)計(jì)瀏覽器
用WebBrowser控件設(shè)計(jì)瀏覽器的方法相對(duì)前面的方法而言,具 體操作要多一點(diǎn),因?yàn)閷?duì)應(yīng)的每個(gè)控件都要設(shè)置屬性并編寫相應(yīng)的 代碼,從而編程量也要相對(duì)地大一些。下面來(lái)具體說(shuō)明其方法和步 驟。
(1)新建一個(gè)項(xiàng)目并打開(kāi)一個(gè)新的窗體Form1;
(2)用鼠標(biāo)右鍵單擊工具箱以添加新的部件Microsoft Common Dialog Controls、Microsoft Windows Common Controls 5.0和 Microsoft Internet Controls;
(3)在窗體Form1中添加一個(gè)Toolbar控件Toolbar1,然后打開(kāi) Toolbar1控件的Properties(屬性)頁(yè),在Button(按鈕)選項(xiàng)卡 中單擊Insert Button按鈕,增加Back(向后)、Forward(向 前)、Stop(停止)、Refresh(刷新)、Home(歸位)、Search (搜索)、Open(打開(kāi))、Navigate(導(dǎo)航)、Exit(退出)等常 用命令按鈕;
(4)添加一個(gè)ImageList控件ImageList1到窗體Form1中,打開(kāi) Imagelist1控件的Properties(屬性)頁(yè),在Images(圖象)選項(xiàng) 卡中單擊Insert Picture按鈕,輸入一些對(duì)應(yīng)按鈕的合適的圖標(biāo), 然后到tbToolbar控件的Properties(屬性)頁(yè)中設(shè)置General選項(xiàng) 卡中的ImageList值與Buttons選項(xiàng)卡中的Image值,使上述命令按 鈕與合適的圖標(biāo)相對(duì)應(yīng);
(5)從工具箱中選出CommonDialog(通用對(duì)話框)控件添加到 瀏覽器窗體中,將其命名為CommonDialog1,為編寫與Open按鈕相 應(yīng)的事件代碼作準(zhǔn)備;
(6)添加一個(gè)Label控件Label1到窗體Form1中,將其Caption值 設(shè)置為“地址(URL):”,再在此控件附近合適的位置添加一個(gè) ComboBox控件Combo1,以便生成Web地址的下拉列表框;
(7)添加一個(gè)WebBrowser控件WebBrowser1到窗體Form1中,將 其調(diào)整到合適的位置上;
(8)添加一個(gè)Timer控件Timer1,將其Enabled與Interval值分 別設(shè)置為False和5;
(9)在Form1窗體的屬性窗口中將MDIChild屬性值設(shè)置為 False;
(10)在該項(xiàng)目的屬性設(shè)置窗口中的啟動(dòng)對(duì)象設(shè)置為Form1窗 體;
(11)為對(duì)應(yīng)窗體和每個(gè)控件等對(duì)象編寫相應(yīng)的事件程序代碼, 具體可參照前面的程序代碼,只要更換一下相應(yīng)的窗體或控件等對(duì) 象的名稱,其他的基本相同,在此就不贅述了。
無(wú)論用Visual Basic 5.0現(xiàn)成的瀏覽器(Browser)窗體還是用 WebBrowser控件來(lái)設(shè)計(jì)簡(jiǎn)單的Web瀏覽器都比較容易。就兩種方法 相比較而言,前者因?yàn)g覽器(Browser)窗體本身集成了一些基本的 控件,并且相應(yīng)的代碼已經(jīng)寫好,要做的只是為添加的控件或菜單 等編寫代碼,所以顯得較為簡(jiǎn)單些;而后者因每一個(gè)窗體或控件等 對(duì)象都要進(jìn)行選擇、添加、設(shè)計(jì)、編寫代碼等,所以相對(duì)較為復(fù)雜 些。無(wú)論怎樣都能在此基礎(chǔ)上進(jìn)行擴(kuò)充,從而設(shè)計(jì)出較為高級(jí)的瀏 覽器來(lái)。

