WebBrower控件如何蔽滚动条

pcwe2002 2005-11-02 10:46:21
我想用代码蔽滚WebBrower控件的滚动条,应该怎么实现呀.具体是这样的,我想让IE控件的竖直滚动条不显示,而把控件的长度设置到正好能够打开网页,应该怎么做呀.
...全文
366 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
pcwe2002 2005-11-06
  • 打赏
  • 举报
回复
WebBrowser1.Document.body.Scroll = "no" 提示对象不支持该属性或方法
hhjjhjhj 2005-11-05
  • 打赏
  • 举报
回复
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
WebBrowser1.Document.body.Scroll = "no"
End Sub
rainstormmaster 2005-11-04
  • 打赏
  • 举报
回复
//按你所说更改之后,还是不行,web_hwnd=0,晕......

我刚才用spy看了一下,发现我刚才弄错了,事实上我们用spy看到的窗口句柄是web_hwnd = FindHwnd(Me.hwnd, "Shell Embedding")得到的窗口的子窗口,而且还不是儿子辈的
northwolves 2005-11-04
  • 打赏
  • 举报
回复
to rainstormmaster(暴风雨 v2.0):

按你所说更改之后,还是不行,web_hwnd=0,晕......
feiyun0112 2005-11-04
  • 打赏
  • 举报
回复
doc = axWebBrowser1.Document
win = doc.parentWindow
win.execscript("document.body.style.overflow='hidden';","javas cript")
rainstormmaster 2005-11-04
  • 打赏
  • 举报
回复
//webbrowser的hwnd可以获得了,但滚动条不消失:

呵呵,两个原因导致滚动条没有消失

1)SC_VSCROLL用的不对,应该为:ShowScrollBar web_hwnd, SB_VERT, False(纵向)
ShowScrollBar web_hwnd, SB_HORZ, False(横向)

2)webbrowser控件的类名不对(刚刚加载时为"Shell Embedding",如果Navigate了本地文件夹就变为"SysListView32",而如果Navigate了网页则变为"Internet Explorer_Server"
winehero 2005-11-03
  • 打赏
  • 举报
回复
汗~~ 楼上正解。

WebBrowser.HWND还真不能用。。。?!
还想懒够 2005-11-03
  • 打赏
  • 举报
回复
仰视楼上两位

我只有模模糊糊的印象(好久没玩WebBrowser了),不记得是获取IE的还是WebBrowser的hwnd的.方法是通过另外的一个组件中一个类的某方法可以获取到hwnd.
pcwe2002 2005-11-03
  • 打赏
  • 举报
回复
感谢各位高手的热情发言,如果不能屏蔽滚动条,有没有办法固定宽度后知道网页的长度呢,将长度设置为网页长度后WebBrowser也不会显示滚动条
rainstormmaster 2005-11-03
  • 打赏
  • 举报
回复
//以前在讨论抓WebBrowser图的时候就hwnd我还有过一段代码(也是抄了别人的),现在找不到如何获取webbrowser的hwnd代码了,不过楼主可以这样试试

这个好办,用findwindowex根据类名查找就可以了
蒋晟 2005-11-03
  • 打赏
  • 举报
回复
An ATL control for hosting and customization of multiple instances of WebBrowser control for VB

http://www.codeproject.com/atl/vbmhwb.asp
还想懒够 2005-11-03
  • 打赏
  • 举报
回复
以前在讨论抓WebBrowser图的时候就hwnd我还有过一段代码(也是抄了别人的),现在找不到如何获取webbrowser的hwnd代码了,不过楼主可以这样试试

用WebBrowser.SetFocus()使WebBrowser获得焦点
然后再使用GetFocus这个API函数获取活动控件的hwnd
视情况而定返回焦点。

winehero 2005-11-03
  • 打赏
  • 举报
回复
'不是SC_VSCROLL而是SB_VERT(1),SC_VSCROLL好像是用来system command Type的
'不过试了,即使用ShowScrollBar好像还是不行
ShowScrollBar web_hwnd, SB_VERT, False
northwolves 2005-11-03
  • 打赏
  • 举报
回复
webbrowser的hwnd可以获得了,但滚动条不消失:


Option Explicit

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long
Private Const SC_VSCROLL = &HF070&
Private Const GW_CHILD As Long = 5
Private Const GW_HWNDNEXT As Long = 2



Private Function FindHwnd(ByVal container_hwnd As Long, ByVal target_class As String) As Long
Dim child_hwnd As Long
Dim class_name As String * 256

child_hwnd = GetWindow(container_hwnd, GW_CHILD)
Do
' See if this is the target class.
GetClassName child_hwnd, class_name, 256
If Left$(class_name, Len(target_class)) = target_class Then
' This is it.
FindHwnd = child_hwnd
Exit Do
End If

' Get the next child.
child_hwnd = GetWindow(child_hwnd, GW_HWNDNEXT)
Loop While child_hwnd <> 0
End Function
Private Sub Form_Load()
Dim web_hwnd As Long
WebBrowser1.Navigate "d:\"
web_hwnd = FindHwnd(Me.hwnd, "Shell Embedding")
Me.Caption = "webbrowser1.hwnd=" & web_hwnd
ShowScrollBar web_hwnd, SC_VSCROLL, False
End Sub
northwolves 2005-11-02
  • 打赏
  • 举报
回复
http://community.csdn.net/Expert/topic/4341/4341860.xml?temp=.4629938
northwolves 2005-11-02
  • 打赏
  • 举报
回复
我的做法是用图片框盖住:

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Const SM_CXVSCROLL = 2 'X Size of arrow in vertical scroll bar.
Private Const SM_CYHSCROLL = 3 'Y Size of arrow in horizontal scroll bar


Private Sub Form_Load()

' 添加一个图片框
Dim pic As PictureBox
Set pic = Controls.Add("VB.PictureBox", "pic")
Dim mywidth As Long, myheight As Long

mywidth = ScaleX(GetSystemMetrics(SM_CXVSCROLL), vbPixels) '垂直滚动条宽度
myheight = ScaleY(GetSystemMetrics(SM_CYHSCROLL), vbPixels) '水平滚动条高度

'调整图片框位置,使其正好掩盖滚动条
With WebBrowser1
pic.Move .Left, .Top, .Width - mywidth, .Height - myheight

Set WebBrowser1.Container = pic '将webbrowser置入图片框内

.Move -ScaleX(2, vbPixels), -ScaleY(2, vbPixels) ' 确保 WebBrowser边框隐藏
End With

pic.Visible = True

WebBrowser1.Navigate "http://community.csdn.net/Expert/topic/4341/4341860.xml?temp=.1116907", 0
End Sub


另外,控件的长度设置到正好能够打开网页,感觉比较麻烦,一般网页都比较宽,比较长,不加滚动条显示不完全
northwolves 2005-11-02
  • 打赏
  • 举报
回复
楼上代码出错:
对象 'HWND' 的方法 'IWebBrowser2' 失败
winehero 2005-11-02
  • 打赏
  • 举报
回复
Private Declare Function ShowScrollBar Lib "user32" (ByVal hwnd As Long, ByVal wBar As Long, ByVal bShow As Long) As Long
Private Const SC_VSCROLL = &HF070&

Private Sub Form_Load()
WebBrowser1.Navigate "d:\"
ShowScrollBar WebBrowser1.hwnd, SC_VSCROLL, False
End Sub

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧