使用 WebBrowser 控件如何防止某些网页强行最大化
2009年08月27日
其他 VB 文章 VB 小程序
58.使用 WebBrowser 控件如何防止某些网页强行最大化
有些网页很讨厌,强行最大化充满了整个窗口,与工具栏等控件重叠在一起,或遮住了自己设置的控件。如何避免这种情况呢?我是这样做的:
在 WebBrowser1 的 DownloadComplete 事件中检测网页元素总个数,如果元素总个数发生了变化,第一次调用 Form_Resize 将控件宽度设置为比正常宽度稍少一点,然后再次调用 Form_Resize 将控件宽度设置为正常状态。
有关代码如下:
dim nCount As Long,nSmall as Boolean
Private Sub WebBrowser1_DownloadComplete() Dim S As Long
On Error Resume Next
S = WebBrowser1.Document.All.length
If nCount = S Then exit sub
nCount = S
ctSmall = True: Call Form_Resize '将控件宽度缩小一点
ctSmall = False: Call Form_Resize '将控件宽度调整为正常状态
end subPrivate Sub Form_Resize()
Dim L As Long, T As Long, H As Long, W As Long
T=300
W = Me.ScaleWidth: H = Me.ScaleHeight - T
If ctSmall Then W = W - 30 '比正常宽度少 2 个像素
If H > 0 And W > 0 Then WebBrowser1.Move L, T, W, H
End Sub
另外,在显示新网页时,也就是调用 Navigate 方法前,应将变量 nCount 位为 0,如下所示:
nCount = 0
WebBrowser1.Navigate nURL
这样做的缺点是,网页加载时,宽度有一个缩小又变回正常状态的过程。
不过,这种变化并不明显。
其他 VB 文章 VB 小程序