微信公众号 
图码生活

每天发布有五花八门的文章,各种有趣的知识等,期待您的订阅与参与
电脑报 1992-2001 十年文章全集
电脑报 1992-2001 十年文章全集
包含从 1992 年 - 2001 年间,两万余篇期刊文章,查询最少输入两个字符
随便看看
读取中
读取中
标题用VB制作自己的浏览器
栏目软件世界
作者黄陀
发布2001年6期
  当你用IE浏览网页时,是否想过自己做一个浏览器呢?也许你会说,不用说IE那样的庞然大物,就连小巧的Opera都不一定办得到。但有了VB和WebBrowser控件,我们今天立即就可以制作一个类似Opera的多窗口浏览器!
  新建一个工程,向其中添加一个MDI(多窗口主窗体),命名为Main。运行“工程”菜单下的“工程1属性”命令,在“通用”选项卡中的启动对象栏选择新创建的MDI主窗体。将原来的普通窗体的名称设为frmBrowser,MDIChild属性设置为True,令其成为MDI子窗体。
  主窗体的设计:
  由于一般控件不能直接放在MDI主窗体上,所以我们先画一个PictureBox,让它成为按钮的容器。在PictureBox上添加4个命令按钮,在属性窗口中Caption属性栏分别填入“开新窗口(&N)”、“横向平铺(&X)”、“纵向平铺(&Y)”、“退出(&E)”,这时你会发现在按钮上括号内出现的并不是“&”和字母,而是带有下划线的字母,程序运行时可以用“Alt+相应的字母键”起到快捷键的作用。以下是MDI主窗体的程序代码:
  Private Sub Command1_Click()
  '在主窗体中显示新的子窗体
  Static browserC As Long
  Dim browse As frmBrowser
  browserC=browserC+1
  Set browse =New frmBrowser
  browse.Show
  End Sub
  Private Sub Command2_Click()
  Me.Arrange vbTileHorizontal
  '令窗口横向平铺
  End Sub
  Private Sub Command3_Click()
  Me.Arrange vbTileVertical
  '令窗口纵向平铺
  End Sub
  Private Sub Command4_Click()
  End
  End Sub
  子窗体的设计:
  向工具箱中添加Microsoft Internet Controls,Microsoft Windows Common Controls两个项目的控件。向子窗体中添加一个Toolbar(工具栏)、Combo(下拉列表框),Text属性设为浏览器的主页,本例中为http://www.yesky.com)、Image List(图像列表,可以存储图像)、WebBrowser、Label(标题为“地址”)和CommandButton(标题为“转到”)。
  选中ImageList,单击右键,选择“属性”命令,在弹出的对话框中把要布置在工具栏按钮上的图片“抓”到ImageList中去(多数图片可以在“C:\Program Files\Microsoft Visual Studio\Common\Graphics”中找到),图片的顺序和按钮最好一一对应。
  选中ToolBar,右击,选择“属性”命令,在“通用”选项卡中的“图像列表”一栏选择ImageList1,在“按钮”选项卡中向工具栏中添加按钮,把各按钮的关键字(Kex属性)分别设置为Back、Forward、Stop、Refresh、Home和Search。“标题”分别设置为对应的“后退”、“前进”、“停止”、“刷新”、“主页”和“搜索”。“图像”分别设置为ImageList中的索引号(图像与按钮位置一一对应的情况下分别是该按钮的序号)。
  下面是子窗体的程序代码:
  Private Sub Form_Load()
  On Error Resume Next
  Me.Show
  Toolbar1.Refresh
  Form_Resize
  Combo1.Move 50,Label1.Top+Label1.Height+15
  'additem事件是向列表框中添加项目的事件,这里用来记录网址
  Combo1.AddItem Combo1.Text
  WebBrowser1.Navigate Combo1.Text
  'Navigate事件是浏览器依据网址导航的事件
  End Sub
  Private Sub WebBrowser1_DownloadComplete()
  On Error Resume Next
  Me.Caption = WebBrowser1.LocationName
  End Sub
  Private Sub Command1_Click()
  '如果点击该按钮那么开始导航
  WebBrowser1.Navigate Combo1.Text
  End Sub
  Private Sub combo1_KeyPress(KeyAscii As Integer)
  '如果按下回车键那么跳转到command1的click事件(即开始导航)
  If KeyAscii = vbKeyReturn Then
  combo1_Click
  End If
  End Sub
  Private Sub Form_Resize()
  On Error Resume Next
  '当窗体改变尺寸时相应改变控件的尺寸
  Combo1.Width=Me.ScaleWidth-100
  WebBrowser1.Width=Me.Scale Width-100
  WebBrowser1.Height=Me.ScaleHeight-100
  End Sub
  Private Sub Toolbar1_ButtonClick(ByVal Button As Button)
  On Error Resume Next
  Select Case Button.Key
  'Button.Key工具按钮的关键字,这里是表示哪个按钮被按下的意思
  Case “Back”
  WebBrowser1.GoBack
  '后退
  Case “Forward”
  WebBrowser1.GoForward
  '前进
  Case “Refresh”
  WebBrowser1.Refresh
  '刷新网页
  Case “Home”
  WebBrowser1.GoHome
  '回主页
  Case “Search”
  WebBrowser1.GoSearch
  '使用搜索
  Case “Stop”
  WebBrowser1.Stop
  '停止导航
  Me.Caption=WebBrowser1.LocationName
  '把窗体的标题设置为网页的标题
  End Select
  End Sub
  运行后的界面如

所示:
  这个浏览器还有改进的余地,比如,可以加上一个像IE那样自动加“http://”头和“.com”尾的功能。欢迎来信netgood1024@sina.com.cn或netgood1024@china.com.cn交流!