用VB制作自己的浏览器

Author: 黄陀 Date: 2001年 6期

?牐牭蹦阌肐E浏览网页时,是否想过自己做一个浏览器呢?也许你会说,不用说IE那样的庞然大物,就连小巧的Opera都不一定办得到。但有了VB和WebBrowser控件,我们今天立即就可以制作一个类似Opera的多窗口浏览器!
  ?牐犘陆ㄒ桓龉こ蹋蚱渲刑砑右桓鯩DI(多窗口主窗体),命名为Main。运行“工程”菜单下的“工程1属性”命令,在“通用”选项卡中的启动对象栏选择新创建的MDI主窗体。将原来的普通窗体的名称设为frmBrowser,MDIChild属性设置为True,令其成为MDI子窗体。
  ?牐犞鞔疤宓纳杓?:
  ?牐犛捎谝话憧丶荒苤苯臃旁贛DI主窗体上,所以我们先画一个PictureBox,让它成为按钮的容器。在PictureBox上添加4个命令按钮,在属性窗口中Caption属性栏分别填入“开新窗口(&N)”、“横向平铺(&X)”、“纵向平铺(&Y)”、“退出(&E)”,这时你会发现在按钮上括号内出现的并不是“&”和字母,而是带有下划线的字母,程序运行时可以用“Alt+相应的字母键”起到快捷键的作用。以下是MDI主窗体的程序代码:
  ?牐燩rivate Sub Command1_Click()
  ?牐牐г谥鞔疤逯邢允拘碌淖哟疤?
  ?牐燬tatic browserC As Long
  ?牐燚im browse As frmBrowser
  ?牐燽rowserC=browserC+1
  ?牐燬et browse =New frmBrowser
  ?牐燽rowse.Show
  ?牐燛nd Sub
  ?牐燩rivate Sub Command2_Click()
  ?牐燤e.Arrange vbTileHorizontal
  ?牐牐Я畲翱诤嵯蚱狡?
  ?牐燛nd Sub
  ?牐燩rivate Sub Command3_Click()
  ?牐燤e.Arrange vbTileVertical
  ?牐牐Я畲翱谧菹蚱狡?
  ?牐燛nd Sub
  ?牐燩rivate Sub Command4_Click()
  ?牐燛nd
  ?牐燛nd Sub
  ?牐犠哟疤宓纳杓疲?
  ?牐犗蚬ぞ呦渲刑砑覯icrosoft Internet Controls,Microsoft Windows Common Controls两个项目的控件。向子窗体中添加一个Toolbar(工具栏)、Combo(下拉列表框),Text属性设为浏览器的主页,本例中为http://www.yesky.com)、Image List(图像列表,可以存储图像)、WebBrowser、Label(标题为“地址”)和CommandButton(标题为“转到”)。
  ?牐犙≈蠭mageList,单击右键,选择“属性”命令,在弹出的对话框中把要布置在工具栏按钮上的图片“抓”到ImageList中去(多数图片可以在“C:\Program Files\Microsoft Visual Studio\Common\Graphics”中找到),图片的顺序和按钮最好一一对应。
  ?牐犙≈蠺oolBar,右击,选择“属性”命令,在“通用”选项卡中的“图像列表”一栏选择ImageList1,在“按钮”选项卡中向工具栏中添加按钮,把各按钮的关键字(Kex属性)分别设置为Back、Forward、Stop、Refresh、Home和Search。“标题”分别设置为对应的“后退”、“前进”、“停止”、“刷新”、“主页”和“搜索”。“图像”分别设置为ImageList中的索引号(图像与按钮位置一一对应的情况下分别是该按钮的序号)。
  ?牐犗旅媸亲哟疤宓某绦虼耄?
  ?牐燩rivate Sub Form_Load()
  ?牐燨n Error Resume Next
  ?牐燤e.Show
  ?牐燭oolbar1.Refresh
  ?牐燜orm_Resize
  ?牐燙ombo1.Move 50,Label1.Top+Label1.Height+15
  ?牐牐?additem事件是向列表框中添加项目的事件,这里用来记录网址
  ?牐燙ombo1.AddItem Combo1.Text
  ?牐燱ebBrowser1.Navigate Combo1.Text
  ?牐牐?Navigate事件是浏览器依据网址导航的事件
  ?牐燛nd Sub
  ?牐燩rivate Sub WebBrowser1_DownloadComplete()
  ?牐燨n Error Resume Next
  ?牐燤e.Caption = WebBrowser1.LocationName
  ?牐燛nd Sub
  ?牐燩rivate Sub Command1_Click()
  ?牐牐?如果点击该按钮那么开始导航
  ?牐燱ebBrowser1.Navigate Combo1.Text
  ?牐燛nd Sub
  ?牐燩rivate Sub combo1_KeyPress(KeyAscii As Integer)
  ?牐牐?如果按下回车键那么跳转到command1的click事件(即开始导航)
  ?牐營f KeyAscii = vbKeyReturn Then
  ?牐燾ombo1_Click
  ?牐燛nd If
  ?牐燛nd Sub
  ?牐燩rivate Sub Form_Resize()
  ?牐燨n Error Resume Next
  ?牐牐У贝疤甯谋涑叽缡毕嘤Ω谋淇丶某叽?
  ?牐燙ombo1.Width=Me.ScaleWidth-100
  ?牐燱ebBrowser1.Width=Me.Scale Width-100
  ?牐燱ebBrowser1.Height=Me.ScaleHeight-100
  ?牐燛nd Sub
  ?牐燩rivate Sub Toolbar1_ButtonClick(ByVal Button As Button)
  ?牐燨n Error Resume Next
  ?牐燬elect Case Button.Key
  ?牐牐?Button.Key工具按钮的关键字,这里是表示哪个按钮被按下的意思
  ?牐燙ase “Back”
  ?牐燱ebBrowser1.GoBack
  ?牐牐Ш笸?
  ?牐燙ase “Forward”
  ?牐燱ebBrowser1.GoForward
  ?牐牐?前进
  ?牐燙ase “Refresh”
  ?牐燱ebBrowser1.Refresh
  ?牐牐?刷新网页
  ?牐燙ase “Home”
  ?牐燱ebBrowser1.GoHome
  ?牐牐Щ刂饕?
  ?牐燙ase “Search”
  ?牐燱ebBrowser1.GoSearch
  ?牐牐?使用搜索
  ?牐燙ase “Stop”
  ?牐燱ebBrowser1.Stop
  ?牐牐?停止导航
  ?牐燤e.Caption=WebBrowser1.LocationName
  ?牐牐О汛疤宓谋晏馍柚梦车谋晏?
  ?牐燛nd Select
  ?牐燛nd Sub
  ?牐犜诵泻蟮慕缑嫒鏭06020501a^所示:
  ?牐犝飧鲣榔骰褂懈慕挠嗟兀热纾梢约由弦桓鱿馡E那样自动加“http://”头和“.com”尾的功能。欢迎来信netgood1024@sina.com.cn或netgood1024@china.com.cn交流!