打印本文 打印本文 关闭窗口 关闭窗口
在VB中使用IE的 WebBrowser控件改进界面设计
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1546  更新时间:2009/4/23 15:42:05  文章录入:mintao  责任编辑:mintao
>End If

 

运行程序,可以看到程序已经截获了用户点击相应超链接的事件(注意:right函数的使用是为了只提取url的最后部分,因为url还包括网络协议和目录等信息)。这样,我们就可以在程序界面中使用Web页来实现用户界面,并通过截获相应的点击事件,通过判断相应的url,得知用户的操作,从而使程序进行不同的操作。

 

换肤(Skin)的实现

利用以上的程序设计思路,我们来实现程序的换肤。因为程序的动作的处理集中在对WebBrowser控件BeforeNavigate2这个事件的处理上,只与url的值有关,与Web页的具体内容和设计没有关系,因此不但可以分离界面和程序的设计,而且可以轻松的实现诸如换肤此类操作。

具体实现办法可以简单叙述为以下几步:

1.         制作几个不同的Web页,但要保证相应的超链接(url)一致;

2.         在程序中设计一个换肤的操作,切换当前WebBrowser所显示的Web页;

3.         在BeforeNavigate2中处理所有的动作。

以下即为笔者设计的一个简单示例的运行画面。如果将窗体设置为无标题栏,无边框,效果就会更佳。

 

 

 

全部程序的代码如下,实现非常简单。

 

Option Explicit

 

Private Sub Form_Load()

    WebBrowser1.Navigate App.Path & "\1.htm"

End Sub

 

Private Sub Option1_Click()

    WebBrowser1.Navigate App.Path & "\1.htm"

End Sub

 

Private Sub Option2_Click()

    WebBrowser1.Navigate App.Path & "\2.htm"

End Sub

 

Private Sub WebBrowser1_BeforeNavigate2(ByVal pDisp As Object, URL As Variant, Flags As Variant, TargetFrameName As Variant, PostData As Variant, Headers As Variant, Cancel As Boolean)

   

    If Right(URL, 3) = "111" Then

       MsgBox "111 Clicked!"

       Cancel = True

    ElseIf Right(URL, 3) = "222" Then

       MsgBox "222 Clicked!"

       Cancel = True

    End If

   

End Sub

 

结束语

在VB中实现与众不同、具有个性界面的程序的办法一般是使用各类界面控件,或者通过调用WinAPI来实现,但一般来说很多漂亮的控件都是需要付费购买的,而通过编程实现都比较复杂,且程序的修改、维护也相应会很复杂。

利用WebBrowser控件可以将界面设计和程序设计分离,对于交互较简单的程序,只需简单编程即可实现一些其他方法较难实现的功能,例如图片按钮、不规则按钮、动画图标等利用Web页可以轻松实现的功能以及换肤等一般程序设计较难实现的功能。利用本文提供的方法进行界面设计可以广泛应用在各类多媒体程序的界面设计,以及程序中类似Office XP和Windows XP的任务窗格的设计。

对于要进行输入输出等相对复杂任务的交互,可以通过下面几个方法思路来实现:

1.将复杂的操作和交互集中起来,直接利用其他方法实现而不利用Web页来实现。

2.程序的输入:在Web页的form设计中,将提交操作的method设置为get,则用户输入内容会出现在url中,可以通过解析url获取用户输入,并进行相应动作。

3.程序的输出:通过对显示的Web页的改写实现。设计一个模板,读入此文件,应用Replace函数可以迅速将程序模板中的内容替换为程序运算后的结果。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口