请问怎样捕捉WebBrowser页面的滚动条滚动事件????

hpp1981 2006-12-27 05:30:52
rt
...全文
590 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lion_wing 2006-12-30
  • 打赏
  • 举报
回复
你可以在里面做判断呀,比如滚动条原来位置为LastTop,滚动条当前位置CurrentTop,你想要每次改变的距离为changeTop
在滚动事件中:
if(LastTop+ChangeTop < CurrentTop)
{
IHTMLElement2::put_scrollTop(long p);
......
}
hpp1981 2006-12-30
  • 打赏
  • 举报
回复
不行,因为你想啊,用IHTMLElement2::put_scrollTop(long p) 函数的时候,又再次触发ONSCROLL事件,结果又要处理,出现混乱状况
lion_wing 2006-12-29
  • 打赏
  • 举报
回复
用HRESULT IHTMLElement2::get_scrollTop(long *p);
和HRESULT IHTMLElement2::put_scrollTop(long p);不行吗?
lion_wing 2006-12-28
  • 打赏
  • 举报
回复
在捕获的ISPID_HTMLWINDOWEVENTS2_ONSCROLL 事件中
用HRESULT IHTMLElement2::get_scrollTop(long *p);得到滚动条位置
再HRESULT IHTMLElement2::put_scrollTop(long p);设置滚动条位置
lion_wing 2006-12-28
  • 打赏
  • 举报
回复
HRESULT IHTMLElement2::get_scrollTop(long *p);
HRESULT IHTMLElement2::get_scrollLeft(long *p);
HRESULT IHTMLElement2::get_scrollWidth(long *p);
HRESULT IHTMLElement2::get_scrollHeight(long *p);
hpp1981 2006-12-28
  • 打赏
  • 举报
回复
你写的那一段话,我看了n遍了,但是还不知道怎么弄。有没有现成的例子,我对COM 组建很不熟悉的。能不能推荐本书
hpp1981 2006-12-28
  • 打赏
  • 举报
回复

我在OnDocumentComplete 中用 AfxConnectionAdvise 的方法挂接上了IHTMLWindow2 并且得到了DISPID_HTMLWINDOWEVENTS2_ONSCROLL 的事件函数。但是这个函数只能得到滚动事件的消息,而没办法得到滚动的方向和距离。

我的网页太长了,所以滚动条很小,每次拉动一点,就掠过很多信息,所以我想控制滚动条,每次拉动只让他滚动一段,而且是固定长度的一段。
hpp1981 2006-12-28
  • 打赏
  • 举报
回复
这些函数我知道的,但是不能达到目的。
我的目的是,当使用者滚动太多时,把滚动量减小到一定程度

我现在把网页的滚动条隐藏,然后创建一个新的滚动条放在那个位置进行控制,可以达到目的
lion_wing 2006-12-27
  • 打赏
  • 举报
回复
IHTMLWindow2::onscroll Property

--------------------------------------------------------------------------------

Sets or retrieves a pointer to the event handler function associated with the onscroll event.

Syntax

HRESULT IHTMLWindow2::get_onscroll(VARIANT *p);HRESULT IHTMLWindow2::put_onscroll(VARIANT v);
Parameters

p
Pointer to a variable of type VARIANT of type VT_DISPATCH that receives the IDispatch interface of an object with a default method that is invoked when the event occurs.
v
VARIANT of type VT_DISPATCH that specifies the IDispatch interface of an object with a default method that is invoked when the event occurs.
Return Value

Returns S_OK if successful, or an error value otherwise.

lion_wing 2006-12-27
  • 打赏
  • 举报
回复
你想实现什么功能?为什么要得到滚动事件?

3,056

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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