WebBrowser控件使用详解.docx

上传人:b****4 文档编号:5002767 上传时间:2022-12-12 格式:DOCX 页数:14 大小:20.98KB
下载 相关 举报
WebBrowser控件使用详解.docx_第1页
第1页 / 共14页
WebBrowser控件使用详解.docx_第2页
第2页 / 共14页
WebBrowser控件使用详解.docx_第3页
第3页 / 共14页
WebBrowser控件使用详解.docx_第4页
第4页 / 共14页
WebBrowser控件使用详解.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

WebBrowser控件使用详解.docx

《WebBrowser控件使用详解.docx》由会员分享,可在线阅读,更多相关《WebBrowser控件使用详解.docx(14页珍藏版)》请在冰豆网上搜索。

WebBrowser控件使用详解.docx

WebBrowser控件使用详解

WebBrowser控件使用详解

方法

⏹GoBack相当于IE的“后退”按钮,使你在当前历史列表中后退一项

⏹GoForward相当于IE的“前进”按钮,使你在当前历史列表中前进一项

⏹GoHome相当于IE的“主页”按钮,连接用户默认的主页

⏹GoSearch相当于IE的“搜索”按钮,连接用户默认的搜索页面

⏹Navigate连接到指定的URL

⏹Stop相当于IE的“停止”按钮,停止当前页面及其容的载入

⏹Refresh刷新当前页面

⏹Refresh2同上,只是可以指定刷新级别,所指定的刷新级别的值来自RefreshConstants枚举表,该表定义在ExDisp.h中,可以指定的不同值如下:

REFRESH_NORMAL执行简单的刷新,不将HTTPpragma:

no-cache头发送给服务器

REFRESH_IFEXPIRED只有在网页过期后才进行简单的刷新

REFRESH_CONTINUE仅作部使用。

在MSDN里写着DONOTUSE!

请勿使用

REFRESH_COMPLETELY将包含pragma:

no-cache头的请求发送到服务器

属性

⏹Application如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDispatch)。

如果在宿主对象中自动化对象无效,这个程序将返回WebBrowser控件的自动化对象

⏹Parent返回WebBrowser控件的父自动化对象,通常是一个容器,例如是宿主或IE窗口

⏹Container返回WebBrowser控件容器的自动化对象。

通常该值与Parent属性返回的值相同

⏹Document为活动的文档返回自动化对象。

如果HTML当前正被显示在WebBrowser中,则Document属性提供对DHTMLObjectModel的访问途径

⏹TopLevelContainer返回一个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true

⏹Type返回已被WebBrowser控件加载的对象的类型。

例如:

如果加载.doc文件,就会返回MicrosoftWordDocument

⏹Left返回或设置WebBrowser控件窗口的部左边与容器窗口左边的距离

⏹Top返回或设置WebBrowser控件窗口的部左边与容器窗口顶边的距离

⏹Width返回或设置WebBrowser窗口的宽度,以像素为单位

⏹Height返回或设置WebBrowser窗口的高度,以像素为单位

⏹LocationName返回一个字符串,该字符串包含着WebBrowser当前显示的资源的名称,如果资源是网页就是网页的标题;如果是文件或文件夹,就是文件或文件夹的名称

⏹LocationURL返回WebBrowser当前正在显示的资源的URL

⏹Busy返回一个Boolean值,说明WebBrowser当前是否正在加载URL,如果返回true就可以使用stop方法来撤销正在执行的访问操作

事件

⏹BeforeNavigate2导航发生前激发,刷新时不激发

⏹CommandStateChange当命令的激活状态改变时激发。

它表明何时激活或关闭Back和Forward菜单项或按钮

⏹DocumentComplete当整个文档完成是激发,刷新页面不激发

⏹DownloadBegin当某项下载操作已经开始后激发,刷新也可激发此事件

⏹DownloadComplete当某项下载操作已经完成后激发,刷新也可激发此事件

⏹NavigateComplete2导航完成后激发,刷新时不激发

⏹NewWindow2在创建新窗口以前激发

⏹OnFullScreen当FullScreen属性改变时激发。

该事件采用VARIENT_BOOL的一个输

⏹入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)

⏹OnMenuBar改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。

⏹VARIANT_TRUE是可见,VARIANT_FALSE是隐藏

⏹OnQuit无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发

⏹OnStatusBar与OnMenuBar调用方法相同,标示状态栏是否可见。

⏹OnToolBar调用方法同上,标示工具栏是否可见。

⏹OnVisible控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数

⏹StatusTextChange如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏

⏹TitleChangeTitle有效或改变时激发

使用技巧

1.禁止右键

看到很多关于WebBrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的Webbrowser扩展COM服务器对象(WBCustomizer.dll),但是该方法在我们想使用Webbrowser编辑网页(Webbrowser1.Document.execCommand"editMode")的时候有很多弊端,比如不能显示选中的文本等。

另有些方法也就不用一一列举了。

这儿我想提到的是关于MSHTML.HTMLDocument

引用MicrosoftHTMLOBjectLibrary

Rem#窗体代码#

DimWithEventsM_DomAsMSHTML.HTMLDocument

PrivateFunctionM_Dom_oncontextmenu()AsBoolean

M_Dom_oncontextmenu=False

EndFunction

PrivateSubWebbrowser1_DownloadComplete()

SetM_Dom=Webbrowser1.Document

EndSub

Rem好了,右键菜单没有了

=====================================================================

2.控件调用和获得收藏夹里面

基本上用specialfolder(6)就可以得到收藏夹的路径,然后你可以用dir去循环读入每个目录,然后dir里面的file,file的名字就是你要的收藏的名字,路径可以自己根据从上面得到的路径去得到。

如果你不用dir也可以用vb的dir控件.

PrivateTypeSHITEMID

cbAsLong

abIDAsByte

EndType

PublicTypeITEMIDLIST

mkidAsSHITEMID

EndType

PublicFunctionSpecialFolder(ByRefCSIDLAsLong)AsString

'locatethefavoritesfolder

DimRAsLong

DimsPathAsString

DimIDLAsITEMIDLIST

ConstNOERROR=0

ConstMAX_LENGTH=260

R=SHGetSpecialFolderLocation(MDIMain.hwnd,CSIDL,IDL)

IfR=NOERRORThen

sPath=Space$(MAX_LENGTH)

R=SHGetPathFromIDList(ByValIDL.mkid.cb,ByValsPath)

IfRThen

SpecialFolder=Left$(sPath,InStr(sPath,vbNullChar)-1)

EndIf

EndIf

EndFunction

=====================================================================

3.全屏

是的,webbrowser本生是一个控件,你要它全屏,就是要它所在的窗体全屏,可以用setwindowlong取消窗体的title,用CallShowWindow(FindWindow("Shell_traywnd",""),0)隐藏tray,就是下边那个包含开始那一行.用CallShowWindow(FindWindow("Shell_traywnd",""),9)恢复.够详细了吧.

然后在form1.windowstate=2就可以了.

=====================================================================

4.选择网页上的容。

PrivateSubCommand1_Click()

'请先选中一些容

Me.WebBrowser1.ExecWBOLECMDID_COPY,OLECMDEXECOPT_DODEFAULT

MsgBoxClipboard.GetText

EndSub

=====================================================================

5.用IE来下载文件

PrivateDeclareFunctionDoFileDownloadLib"shdocvw.dll"(ByVallpszFileAsString)AsLong

PrivateSubCommand1_Click()

DimsDownloadAsString

sDownload=StrConv(Text1.Text,vbUnicode)

CallDoFileDownload(sDownload)

EndSub

PrivateSubForm_Load()

Text1.Text=".chat.ru/~softdaily/fo-ag162.zip"

Form1.Caption="Audiograbber1.62Full"

Text2.Text="www6.50megs./audiograbber/demos/cr-ag161.zip"

EndSub

=====================================================================

6.我要动态加载和删除WebBrowser控件应该怎么做?

PrivateSubCommand1_Click()

Form1.Controls.Add"shell.explorer.2","NewWeb",Form1

WithForm1!

NewWeb

.Visible=True

.Width=10000

.Height=10000

.Left=0

.Top=0

.Navigate2""

EndWith

EndSub

PrivateSubCommand2_Click()

Controls.RemoveForm1!

newweb

EndSub

Form1.Controls.Add"shell.explorer.2",newweb(newweb.Count),Form1

WithForm1!

newweb(newweb.Count)

.Visible=True

.Width=1000

.Height=1000

.Left=newweb(newweb.Count-1).Left+newweb(newweb.Count-1).Width

.Top=0

'.Navigate2""

EndWith

为什么他说我

Form1.Controls.Add"shell.explorer.2",newweb(newweb.Count),Form1

这一行错误13类型不匹配?

ps:

我在form中已经有了一个newweb(0)控件

先为一个WebBrowser

DimiAsInteger

PrivateSubAddWeb_Click()

Fori=1To10

LoadNewWeb(i)

NewWeb(i).Top=i*100

NewWeb(i).Left=i*100

NewWeb(i).Visible=True

Nexti

EndSub

PrivateSubDelWeb_Click()

Fori=1To10

UnloadNewWeb(i)

Nexti

EndSub

=====================================================================

7.一个把页面保存为MHT(即MHTML)文件

将pcwak(书剑狂生[MSMVP])大侠提供的资料贴出来,以供大家参考:

我终于找到一个把页面保存为MHT(即MHTML)文件的方法了!

首先,在工程中必须要引用一个库:

LibraryCDO

D:

\WINNT\System32\cdosys.dll

MicrosoftCDOforWindows2000Library

其次,需要Stream对应的接口的支持,如果你一时找不到就使用支持这个的较新的ADO就行了,如

LibraryADODB

D:

\ProgramFiles\CommonFiles\system\ado\msado15.dll

MicrosoftActiveXDataObjects2.5Library

代码如下,十分简单(同时由于流的特点,显示在实际应用中没必要象本例中那样把文件保存到磁盘上就可直接转换为字符串或字节数组什么的处理的。

另,对于MicrosoftCDOforWindows2000Library这个库,在WIN98中要怎么使用还没试过,感兴趣的朋友可以试试并跟帖,以丰富完善其容:

PrivateSubCommand1_Click()

'ReferencetoMicrosoftActiveXDataObjects2.5Library

'ReferencetoMicrosoftCDOforWindows2000Library

DimiMsgAsNewCDO.Message

DimiConfAsNewCDO.Configuration

DimobjStreamAsADODB.Stream

WithiMsg

.CreateMHTMLBody".163./";,,_

"domain\username",_

"password"

SetobjStream=.GetStream

CallobjStream.SaveToFile("f:

\test.mht",adSaveCreateOverWrite)

EndWith

EndSub

2、

'首先加入对ADODB和CDO(MicrosoftCDOforWindows2000Library,对应文件名为CDOSYS.dll)的引用

PrivateSubCommand1_Click()

DimmessageAsNewCDO.message

DimOutstreamAsADODB.Stream

OnErrorGoTomyerr1

Callmessage.CreateMHTMLBody("",CDO.CdoMHTMLFlags.cdoSuppressNone,"","")

SetOutstream=message.GetStream

CallOutstream.SaveToFile("c:

\test.mht",ADODB.SaveOptionsEnum.adSaveCreateOverWrite)

MsgBox"完成"

ExitSub

myerr1:

Setmessage=Nothing

SetOutstream=Nothing

EndSub

=====================================================================

8.在WebBrowser控件调用收藏夹和在收藏夹里添加收藏

OptionExplicit

PrivateSubCommand1_Click()

DimObjSUHAsNewShellUIHelper

ObjSUH.AddFavorite"","CSDN"

SetObjSUH=Nothing

EndSub

=====================================================================

9.如何使网页不出现滚动条:

PrivateSubmnuScroll1_Click()

'注意:

必须在网页完全显示之后才可以运行

WebBrowser1.Document.body.Scroll="no"'不显示滚动条的办法

EndSub

PrivateSubmnuScroll2_Click()

'注意:

必须在网页完全显示之后才可以运行

WebBrowser1.Document.body.Scroll="Auto"'显示滚动条的办法

EndSub

=====================================================================

10.如何获得网页中被选中部分的HTML:

PrivateSubCommand1_Click()

DimobjSelection

DimobjTxtRange

SetobjSelection=WebBrowser1.Document.selection

IfNot(objSelectionIsNothing)Then

SetobjTxtRange=objSelection.createRange

IfNot(objTxtRangeIsNothing)Then

Debug.PrintobjTxtRange.htmlText

SetobjTxtRange=Nothing

EndIf

SetobjSelection=Nothing

EndIf

EndSub

PrivateSubForm_Load()

WebBrowser1.Navigate".applevb."

EndSub

=====================================================================

11.页面滚动:

PrivateSubCommand2_Click()

WebBrowser1.Document.parentwindow.scrollby0,30

EndSub

PrivateSubForm_Load()

WebBrowser1.Navigate".applevb."

EndSub

点击Command2就可以使当前页面向下滚动30像素

=====================================================================

12.判断页面是否可以前进后退

PrivateSubCommand1_Click()

WebBrowser1.GoForward

EndSub

PrivateSubCommand2_Click()

WebBrowser1.GoBack

EndSub

PrivateSubForm_Load()

WebBrowser1.Navigate".applevb."

EndSub

PrivateSubWebBrowser1_CommandStateChange(ByValCommandAsLong,ByValEnableAsBoolean)

If(Command=CSC_NAVIGATEBACK)Then

Command2.Enabled=Enable

EndIf

If(Command=CSC_NAVIGATEFORWARD)Then

Command1.Enabled=Enable

EndIf

EndSub

上面的command1是前进按钮,command2是后退按钮

=====================================================================

13.获得浏览器信息:

PrivateSubCommand1_Click()

WebBrowser1.Navigate".applevb."

EndSub

PrivateSubCommand2_Click()

DimoWindow

DimoNav

SetoWindow=WebBrowser1.Document.parentWindow

SetoNav=oWindow.navigator

Debug.PrintoNav.userAgent

SetoWindow=Nothing

SetoNav=Nothing

EndSub

点击Command1浏览网页,点击Command2在立即窗口中输出浏览器信息。

=====================================================================

14.弹出Webbrowser消息窗口

DimoWindow

SetoWindow=WebBrowser1.Document.parentWindow

oWindow.confirm"abcd"

=====================================================================

15.向Webbrowser中写入HTML容的几种方法

首先在Form_Load中加入

WebBrowser1.Navigate"about:

blank"

确保Webbrowser1可用

方法1:

DimsAsString

DimstreamAsIStream

s=""

s=s+""

s=s+""

s=s+"helloworld"

s=s+""

s=s+"

WebBrowser1.Document.Writes

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1