top
Loading...
用VB設計自已的Web瀏覽器
br>瀏覽器是閱讀WWW上的信息資源的重要的客戶端軟件,眾所周 知的有Microsoft Internet Explorer和Netscape Navigator瀏覽 器。它們功能強大,界面友好,是廣大網民在Internet上沖浪的好 工具。對于多媒體應用軟件及教育軟件的開發者來說,可能更希望 有自己定制的瀏覽器集成到自己開發的產品中來,以增強應用軟件 產品的功能,擴充使用多媒體信息的方式,使自己的產品更加先 進、更加具有網絡化特色,從而輕松平滑地融入到Internet世界中 去。但是,這些專業性的Web瀏覽器的安裝配置較為復雜,程序文 件又很大,對于應用軟件開發者來說還有版權問題,更不具有自己 需要的特色,要想集成到自己的應用產品中,有可能融合不平滑, 還會產生很多問題,怎么辦呢?Visual Basic 5.0為軟件開發人員 提供了現成的窗體和控件,只要稍稍熟悉VB編程,就可以輕松地設 計出具有專業化界面的、有自己特色的Web瀏覽器來。而且,原有 的軟件開發工具可能不支持的媒體元素如Gif動畫、.au格式聲音等 也都能方便地引用到您的應用軟件產品中來,而這些媒體元素在 Internet上幾乎可以說是取之不盡,用之不竭的。下面就對用 Visual Basic 5.0設計一個簡單的Web瀏覽器的方法加以說明。
1.用Browser窗體設計瀏覽器
Visual Basic 5.0的專業版提供了瀏覽器窗體(Browser Form),用它來設計自己的瀏覽器相當方便,許多控件不用一個個 地去設置和編寫代碼了,在此基礎上還可以增添自己想增加的控件 和菜單等。下面對制作一個簡單的瀏覽器的方法和步驟加以說明。
(1)在VB中打開一個新的項目(New Project);
(2)在項目(Project)資源管理器窗口中,選定Form1窗體并按 鼠標右鍵,彈出菜單后,用刪除窗體(Remove Form)命令刪除Form1 窗體;
(3)選定項目Project1,單擊鼠標右鍵,彈出菜單后選定添加 (Add)項,再選擇添加窗體(Add Form)命令。彈出添加窗體(Add Form)對話框后,在其中選擇瀏覽器(Browser)打開它;
(4)在項目Project1的對象窗口中可以看到tbToolbar控件中已 經設置有Back(向后)、Forward(向前)、Stop(停止)、 Refresh(刷新)、Home(歸位)、Search(搜索)等命令按鈕, 還可以向tbToolbar控件中添加Open(打開)、Navigate(導 航)、Exit(退出)等命令按鈕,其方法是:打開tbToolbar控件 的Properties(屬性)頁,在Button(按鈕)選項卡中單擊Insert Button按鈕來插入按鈕,在以上命令按? Caption屬性項中輸入 相應的按鈕名稱;
(5)由于新添加的Open(打開)、Navigate(導航)、Exit (退出)等命令按鈕上沒有相應的圖標,故可以自行添加,其方法 是:找到名為ImlIcons的ImageList控件,打開其屬性頁,在 Images選項卡中插入自己喜歡的圖標。然后在tbToolbar控件的 Properties(屬性)頁中設置相應的Index值;
(6)從工具箱中選出CommonDialog(通用對話框)控件添加到 瀏覽器窗體中,將其命名為brwCommonDialog,為編寫Open按鈕相 應的事件代碼作準備;
(7)在frmBrowser窗體的屬性窗口中,將MDIChild屬性值設置 為False;
(8)在項目Project1的屬性設置窗口中設置啟動對象為 frmBrowser窗體;
(9)在tbToolbar控件的代碼窗口中編寫Open(打開)、 Navigate(導航)、Exit(退出)等命令按鈕的代碼;
(10)在其他對象的代碼窗口中編寫或修改相應的代碼。
具體的程序代碼請訪問網點www.pccomputing.com.cn。
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 = "運行中..."
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
最后編繹全部程序,其運行結果如圖1所示。

圖1.所設計的瀏覽器
2.用WebBrowser控件設計瀏覽器
用WebBrowser控件設計瀏覽器的方法相對前面的方法而言,具 體操作要多一點,因為對應的每個控件都要設置屬性并編寫相應的 代碼,從而編程量也要相對地大一些。下面來具體說明其方法和步 驟。
(1)新建一個項目并打開一個新的窗體Form1;
(2)用鼠標右鍵單擊工具箱以添加新的部件Microsoft Common Dialog Controls、Microsoft Windows Common Controls 5.0和 Microsoft Internet Controls;
(3)在窗體Form1中添加一個Toolbar控件Toolbar1,然后打開 Toolbar1控件的Properties(屬性)頁,在Button(按鈕)選項卡 中單擊Insert Button按鈕,增加Back(向后)、Forward(向 前)、Stop(停止)、Refresh(刷新)、Home(歸位)、Search (搜索)、Open(打開)、Navigate(導航)、Exit(退出)等常 用命令按鈕;
(4)添加一個ImageList控件ImageList1到窗體Form1中,打開 Imagelist1控件的Properties(屬性)頁,在Images(圖象)選項 卡中單擊Insert Picture按鈕,輸入一些對應按鈕的合適的圖標, 然后到tbToolbar控件的Properties(屬性)頁中設置General選項 卡中的ImageList值與Buttons選項卡中的Image值,使上述命令按 鈕與合適的圖標相對應;
(5)從工具箱中選出CommonDialog(通用對話框)控件添加到 瀏覽器窗體中,將其命名為CommonDialog1,為編寫與Open按鈕相 應的事件代碼作準備;
(6)添加一個Label控件Label1到窗體Form1中,將其Caption值 設置為“地址(URL):”,再在此控件附近合適的位置添加一個 ComboBox控件Combo1,以便生成Web地址的下拉列表框;
(7)添加一個WebBrowser控件WebBrowser1到窗體Form1中,將 其調整到合適的位置上;
(8)添加一個Timer控件Timer1,將其Enabled與Interval值分 別設置為False和5;
(9)在Form1窗體的屬性窗口中將MDIChild屬性值設置為 False;
(10)在該項目的屬性設置窗口中的啟動對象設置為Form1窗 體;
(11)為對應窗體和每個控件等對象編寫相應的事件程序代碼, 具體可參照前面的程序代碼,只要更換一下相應的窗體或控件等對 象的名稱,其他的基本相同,在此就不贅述了。
無論用Visual Basic 5.0現成的瀏覽器(Browser)窗體還是用 WebBrowser控件來設計簡單的Web瀏覽器都比較容易。就兩種方法 相比較而言,前者因瀏覽器(Browser)窗體本身集成了一些基本的 控件,并且相應的代碼已經寫好,要做的只是為添加的控件或菜單 等編寫代碼,所以顯得較為簡單些;而后者因每一個窗體或控件等 對象都要進行選擇、添加、設計、編寫代碼等,所以相對較為復雜 些。無論怎樣都能在此基礎上進行擴充,從而設計出較為高級的瀏 覽器來。PCC
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗