分享
 
 
 

VB掌管WebBrowser访问MSHTML成员一点经验

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

VB掌管WebBrowser访问MSHTML成员虽然较VC++有限,但对大多数的应用问题不大,而且实现过程也很简单.

一.在VB中使用WebBroswer控件

1.在VB中使用Microsoft Internet Controls做浏览器最方便,但远不能尽WebBrowser之所能. VB能够实现的一些功能如下:

>掌管WebBrowser控件实现浏览功能

>自动化IE

>捕捉IE事件

>访问DHTML对象模型

但VB不能使用高级掌管接口实现例如关闭Context Menu和控制下载内容等一些功能.有关用VB对IE编程的知识可以参考微软图书<<Microsoft Internet Exploer 5 程序设计(Programmning Internet Explorer 5)>>的相应部分.

2.调用WebBrowser的ExecWB方法能实现一些额外的功能比如CUT,PASTE和SAVEAS等,包含在OLEMDID枚举表中,可以在对象浏览器中看到. 这样我们就可以使WebBrowser具有一些编辑功能,如:

WebBrowser1.ExecWB OLECMDID_PASTE, OLECMDEXECOPT_DODEFAULT

可以把HTML格式的内容粘贴进WebBroser中, 这样就可以方便的实现一个HTML剪贴工具,既拷贝字符,又保留格式,NotePad靠边站吧.

二.访问MSHTML成员

1.用VB访问DHTML模型,实现对HTML元素的操作非常简单易行.引用Micsoft HTML Object Library之后就可以在对象浏览器看到包含的类及其属性方法.其中主要包含以HTML和IHTML为类名前缀的类,这些类给HTML, DHTML以及脚本(VBSCRIPT, JAVASCRIPT)对象提供定义与接口. 在VB中我们可以用这些类来创建用于访问网页元素的对象实例.而且程序编制与写网页脚本一样简单且相似,所以可以用VBSCRIPT和JAVASCRIPT的资料作参考(本人在学习VB的这一应用时学通了DHTML),例如:微软图书<<动态超文本标识语言从入门到精通(Inside Dynamic HTML)>>(一本翻译的很烂的书!). 如果掌握了VC++ 和MFC, MSDN自然也是个好去处, 那儿有关于MSHTML的丰富资料(虽然不能往VB里照搬,我们可以试验VB在许多方面的可行性.)

2.MSHTML类库[Micsoft HTML Object Library]

访问MSHTML要引用MSHTML组件库.在IE5以前,这个库包含在mshtml.dll中,对IE5来说这个类型库被转移到mshtml.tlb中. 出于某种原因,也许在引用列表里看不到Micsoft HTML Object Library, 不过可以在文件对话框里键入类型库文件名添加引用.

3.一个例子: 在使用搜索引擎(例如MSN)搜索英文网页时, 希望关键字在搜到的条目中高亮或加重显示. 我让WebBrowser导航到搜索页面,然后给所有的关键字都加上了<SPAN>,另外把网页上的超链接都塞进一个列表框. 其中的查找关键字使用IHTMLTEXTRANGE, 它用于对网页上文本的访问.

部件: Microsoft Internet Controls

引用: Micsoft HTML Object Library --- 参看"MSHTML类库"

控件: WebBrowser1; List1; Label1; Command1

属性: Command1.Caption="FIND"

CODE:

Dim webdoc As HTMLDocument

Dim texbody As HTMLBody

Dim Rng As IHTMLTxtRange

' ----------------------------------------------------------------------------------------

Private Sub Command1_Click()

'查找关键字

On Error Resume Next

Set texbody = webdoc.body

Set Rng = texbody.createTextRange()

Do While Rng.findText(Text1.Text) <> False

Rng.Select

Rng.pasteHTML "<span style='background:SILVER'>" + Text1.Text + "</span>"

'

'用IHTMLTxtRange的execCommand方法可以实现加粗等功能,如:

'Rng.execCommand "bold"

'Rng.execCommand "underline"

'Rng.execCommand "italic"

'参看MSDN>DHTML Reference>Command Identifers

'

Rng.collapse False

Loop

Rng.collapse True

End Sub

'---------------------------------------------------------------------------------------------

Private Sub Form_Load()

WebBrowser1.navigate "http://search.msn.com/results.asp?q=wordlist"

Text1.Text = ""

End Sub

'---------------------------------------------------------------------------------------------

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)

'将webdoc设置到被WebBrowser的Document属性返回的文挡对象中

Set webdoc = WebBrowser1.document

'提取超链接

''定义元素集

Dim Acollection As IHTMLElementCollection

''设置元素集为所有的Anchor元素,用tags方法引用元素

Set Acollection = webdoc.All.tags("a")

''把Anchor元素转换为相应的字符串表示,用items方法引用元素

For i = 0 To Acollection.length - 1

List1.AddItem Acollection.Item(i).toString

Next

'length属性返回元素集中元素的个数

Label1.Caption = "Number of links: " + Str$(Acollection.length)

End Sub

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有