用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   运行后的界面如^06020501a^所示:   这个浏览器还有改进的余地,比如,可以加上一个像IE那样自动加“http://”头和“.com”尾的功能。欢迎来信netgood1024@sina.com.cn或netgood1024@china.com.cn交流!