WebBrowser控件使⽤详解
⽅法说明
 GoBack相当于IE的“后退”按钮,使你在当前历史列表中后退⼀项
 GoForward相当于IE的“前进”按钮,使你在当前历史列表中前进⼀项
 GoHome相当于IE的“主页”按钮,连接⽤户默认的主页
 GoSearch相当于IE的“搜索”按钮,连接⽤户默认的搜索页⾯
 Navigate连接到指定的URL
 Refresh刷新当前页⾯
 Refresh2同上,只是可以指定刷新级别,所指定的刷新级别的值来
⾃RefreshConstants枚举表,
该表定义在ExDisp.h中,可以指定的不同值如下:
REFRESH_NORMAL 执⾏简单的刷新,不将HTTP pragma: no-
cache头发送给服务器
REFRESH_IFEXPIRED 只有在⽹页过期后才进⾏简单的刷新
REFRESH_CONTINUE 仅作内部使⽤。在MSDN⾥写着DO NOT
USE! 请勿使⽤
REFRESH_COMPLETELY 将包含pragma: no-cache头的请求发送到
服务器
 Stop相当于IE的“停⽌”按钮,停⽌当前页⾯及其内容的载⼊
属性说明
 Application如果该对象有效,则返回掌管WebBrowser控件的应⽤程序实
现的⾃动化对象(IDispatch)。如果在宿主对象中⾃动化对象⽆
效,这个程序将返回WebBrowser
控件的⾃动化对象
 Parent 返回WebBrowser控件的⽗⾃动化对象,通常是⼀个容器,例如是宿主或IE窗⼝
 Container 返回WebBrowser控件容器的⾃动化对象。通常该值与Parent属性返回的值相同
 Document 为活动的⽂档返回⾃动化对象。如果HTML当前正被显⽰在WebBrowser中,则
Document属性提供对DHTML Object Model的访问途径
 TopLevelContainer 返回⼀个Boolean值,表明IE是否是WebBrowser控件顶层容器,是就返回true
 Type返回已被WebBrowser控件加载的对象的类型。例如:如果加
载.doc⽂件,就会返
回Microsoft Word Document
 Left 返回或设置WebBrowser控件窗⼝的内部左边与容器窗⼝左边的距离
 Top 返回或设置WebBrowser控件窗⼝的内部左边与容器窗⼝顶边的距离
 Width返回或设置WebBrowser窗⼝的宽度,以像素为单位 Height返回或设置WebBrowser窗⼝的⾼度,以像素为单位
 LocationName 返回⼀个字符串,该字符串包含着WebBrowser当前显⽰的资源的名称,如果资源
是⽹页就是⽹页的标题;如果是⽂件或⽂件夹,就是⽂件或⽂件夹的名称
 LocationURL返回WebBrowser当前正在显⽰的资源的URL
 Busy返回⼀个Boolean值,说明WebBrowser当前是否正在加
载URL,如果返回true
就可以使⽤stop⽅法来撤销正在执⾏的访问操作
WebBrowser 的事件
Private Events Description BeforeNavigate2导航发⽣前激发,刷新时不激发
CommandStateChange当命令的激活状态改变时激发。它表明何时激活或关闭Back和Forward
菜单项或按钮
DocumentComplete当整个⽂档完成是激发,刷新页⾯不激发
DownloadBegin当某项下载操作已经开始后激发,刷新也可激发此事件
DownloadComplete当某项下载操作已经完成后激发,刷新也可激发此事件
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如果要改变状态栏中的⽂字,这个事件就会被激发,但它并不理会程序是否有状态栏
TitleChange Title有效或改变时激发
⼀些使⽤技巧
1.禁⽌右键
看到很多关于WebBrowser控件禁⽌右键的提问,回复的⽅法很多,其中有提到使⽤微软提供的Webbrowser扩展COM服务器对象(WBCustomizer.dll),但是该⽅法在我们想使⽤Webbrowser编辑⽹页(Command "editMode")的时候有很多弊端,⽐如不能显⽰选中的⽂本等。另有些⽅法也就不⽤⼀⼀列举了。
这⼉我想提到的是关于MSHTML.HTMLDocument
引⽤Microsoft HTML OBject Library
Rem #窗体代码#
Dim WithEvents M_Dom As MSHTML.HTMLDocument
Private Function M_Dom_oncontextmenu() As Boolean
M_Dom_oncontextmenu = False
End Function
Private Sub Webbrowser1_DownloadComplete()
Set M_Dom = Webbrowser1.Document
End Sub
Rem 好了,右键菜单没有了
=========================================================================
2、控件调⽤和获得收藏夹⾥⾯
基本上⽤ specialfolder(6 ) 就可以得到收藏夹的路径, 然后你可以⽤dir去循环读⼊每个⽬录,然后dir⾥⾯的file, file的名字就是你要的收藏的名字, 路径可以⾃⼰根据从上⾯得到的路径去得到.
如果你不⽤dir也可以⽤vb的dir控件.
Private Type SHITEMID
cb As Long
abID As Byte
End Type
Public Type ITEMIDLIST
mkid As SHITEMID
End Type
Public Function SpecialFolder(ByRef CSIDL As Long) As String
'locate the favorites folder
Dim R As Long
Dim sPath As String
Dim IDL As ITEMIDLIST
Const NOERROR = 0
Const MAX_LENGTH = 260
R = SHGetSpecialFolderLocation(MDIMain.hwnd, CSIDL, IDL)
If R = NOERROR Then
sPath = Space$(MAX_LENGTH)
R = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath)
If R Then
SpecialFolder = Left$(sPath, InStr(sPath, vbNullChar) - 1)
End If
End If
End Function
=============================================================
3、全屏
是的,webbrowser本⽣是⼀个控件, 你要它全屏,就是要它所在的窗体全屏, 可以⽤setwindowlong取消窗体的 title, ⽤Call ShowWindow(FindWindow("Shell_traywnd", ""), 0) 隐藏tray,就是下边那个包含开始那⼀⾏. ⽤Call
ShowWindow(FindWindow("Shell_traywnd", ""), 9) 恢复. 够详细了吧.
然后在form1.windowstate = 2 就可以了.
================================================================================
4、选择⽹页上的内容。
Private Sub Command1_Click()
'请先选中⼀些内容
Me.WebBrowser1.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT
MsgBox Clipboard.GetText
End Sub
==========================================================================
5、⽤IE来下载⽂件
Private Declare Function DoFileDownload Lib "shdocvw.dll" (ByVal lpszFile As String) As Long
=======================================================================
6、我要动态加载和删除WebBrowser控件应该怎么做?
Private Sub Command1_Click()
Form1.Controls.Add "plorer.2", "NewWeb", Form1
With Form1!NewWeb
.Visible = True
.Width = 10000
.Height = 10000
.Left = 0
.Top = 0
.Navigate2 ""
End With
End Sub
Private Sub Command2_Click()
Controls.Remove Form1!newweb
End Sub
Form1.Controls.Add "plorer.2", newweb(newweb.Count), Form1
With Form1!newweb(newweb.Count)
.Visible = True
.Width = 1000
.Height = 1000
.Left = newweb(newweb.Count - 1).Left + newweb(newweb.Count - 1).Width
.Top = 0
web浏览器在哪里打开'.Navigate2 ""
End With
为什么他说我
Form1.Controls.Add "plorer.2", newweb(newweb.Count), Form1
这⼀⾏错误13 类型不匹配?
ps:我在form中已经有了⼀个newweb(0)控件
先为⼀个WebBrowser
Dim i As Integer
Private Sub AddWeb_Click()
For i = 1 To 10
Load NewWeb(i)
NewWeb(i).Top = i * 100
NewWeb(i).Left = i * 100
NewWeb(i).Visible = True
Next i
End Sub
Private Sub DelWeb_Click()
For i = 1 To 10
Unload NewWeb(i)
Next i
End Sub
=======================================================
7、⼀个把页⾯保存为MHT(即MHTML)⽂件
11、页⾯滚动:
Private Sub Command2_Click()
WebBrowser1.Document.parentwindow.scrollby 0, 30
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "www.applevb"
End Sub
点击Command2就可以使当前页⾯向下滚动30像素
12、判断页⾯是否可以前进后退
Private Sub Command1_Click()
WebBrowser1.GoForward
End Sub
Private Sub Command2_Click()
WebBrowser1.GoBack
End Sub
Private Sub Form_Load()
WebBrowser1.Navigate "www.applevb"
End Sub
Private Sub WebBrowser1_CommandStateChange(ByVal Command As Long, ByVal Enable As Boolean)    If (Command = CSC_NAVIGATEBACK) Then
Command2.Enabled = Enable
End If
If (Command = CSC_NAVIGATEFORWARD) Then
Command1.Enabled = Enable
End If
End Sub
上⾯的command1是前进按钮,command2是后退按钮
程序员的基础教程:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。