用VB设计自已的Web浏览器

| 软件设计师 |

【www.tingchehu.com--软件设计师】

浏览器是阅读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)在其他对象的代码窗口中编写或修改相应的代码。
  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

  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)窗体本身集成了一些基本的 控件,并且相应的代码已经写好,要做的只是为添加的控件或菜单 等编写代码,所以显得较为简单些;而后者因每一个窗体或控件等 对象都要进行选择、添加、设计、编写代码等,所以相对较为复杂 些。无论怎样都能在此基础上进行扩充,从而设计出较为高级的浏 览器来。

本文来源:http://www.tingchehu.com/content-81-9043-1.html

    热门标签

    HOT