在VB中使用IE的 WebBrowser控件
改进界面设计
在程序设计中,如何设计出美观、实用,有个性的界面是每个程序设计者在界面设计中追求的目标。随着Windows XP的推出,各种与众不同的华丽界面越来越被程序设计者和软件使用者所认同。
利用Windows中的WebBrowser控件,可以把华丽的网页设计技术应用到界面设计中去,例如微软著名的MSN浏览器的许多界面其实就是一个Web页,Windows XP中的帮助中心、Microsoft Encarta(微软百科全书)等许多软件中的一些界面也是利用WebBrowser控件显示的Web页。
利用WebBrowser控件显示一个网页,制作一个简单的浏览器已经有很多文章介绍,实现也不复杂,但如何实现程序与Web页的交互则是将其应用到界面设计中的关键。
ActiveX控件和WebBrowser控件的使用
用 Visual Basic 创建一个应用程序的第一步是创建界面。而控件则是创建界面的基本模块,是包括在窗体对象内的对象。每种类型的控件都有自己的属性、方法和事件,属性一般控制控件的外观、大小等性质,方法则是控件的能力或者功能,事件则代表与用户的交互,例如鼠标的移动点击、键盘的输入等都会触发相应的事件。
WebBrowser控件是随IE 3.0以上版本提供的一个可编程的ActiveX控件,利用WebBrowser控件可以显示、控制、分析Web页,除了IE,chm格式的帮助的浏览,还广泛应用在以IE为核心的许多浏览器和其他程序中。
WebBrowser控件在VB中的使用很简单。启动VB,创建一个标准EXE工程,选择工程——部件,打开部件对话框,从中找到Microsoft Internet Controls,选中后单击应用,然后关闭对话框(下图),可以看到WebBrowser控件已经添加到工具栏。
将WebBrowser控件拖至窗体,调整到相应大小,打开代码窗口,在Form_Load过程中键入如下代码:
Private Sub Form_Load()
WebBrowser1.Navigate "http://www.sohu.com"
End Sub
运行程序,可以看到搜狐的主页显示在了相应的对话框中了。如果是本地的Web页只需将http://www.sohu.com替换为本地文件的全路径(目录+文件名)就可以了。
控制WebBrowser控件
利用WebBrowser控件的GoBack(后退)、GoForward(前进)、GoHome(主页)、Navigate(定位)、Refresh(刷新)、Stop(停止)等方法,可以实现浏览器的常规操作。例如实现地址栏的操作,可以先向窗体添加一个文本框和按钮,并向按钮的Click事件相应过程中添加如下代码:
Private Sub Command1_Click()
WebBrowser1.Navigate Text1.Text
End Sub
这样,向文本框输入地址,单击按钮,即可访问不同的站点。WebBrowser控件得其他操作方法类似,读者可以参考MSDN的有关介绍。
实现Web页与程序的交互
要实现Web页与程序的交互,其关键在于改写WebBrowser控件的BeforeNavigate2事件,截获需要与程序交互的动作,然后进行相应的操作。例如,我们在程序目录下新建一个简单的Web页test.htm,其内容如下:
<HTML>
<HEAD>
<TITLE> Test </TITLE>
</HEAD>
<BODY>
<A HREF="test1.htm">test1</A><br>
<A HREF="test1.htm">test2</A>
</BODY>
</HTML>
在Form_Load过程中键入如下代码:
Private Sub Form_Load()
WebBrowser1.Navigate App.Path & "\test.htm"
End Sub
运行程序,点击test1或者test2则打开相应的test1.htm(如果test1.htm存在),或者显示文件找不到错误。那么如何截获用户点击test1这个超链接呢,我们在BeforeNavigate2这个事件中键入以下代码:
If Right(URL, 9) = "test1.htm" Then
MsgBox "test1 clicked"
Cancel = True ''''使WebBrowser控件停止相应此事件
ElseIf Right(URL, 9) = "test2.htm" Then
MsgBox "test2 clicked"
Cancel = True
[1] [2] 下一页 [常用软件]在Maxthon中使用Google网站加速器 [常用软件]在POWERBUILDER中使用WINSOCK控件的方法 [VB.NET程序]在VB.NET中使用MS Access存储过程 — 第二部份 [VB.NET程序]在VB.NET中使用MS Access存储过程 — 第一部份 [VB.NET程序]在 VB 中使用 Unicode API [VB.NET程序]VB中使用WMI获取系统硬件和软件有关信息 [Delphi程序]DELPHI中使用API函数详解 [Delphi程序]在Delphi中使用Queued 组件 [Delphi程序]在delphi中使用flash控件 [Delphi程序]在delphi中使用xml文档有两种方法
|