社区
ATL
帖子详情
请问怎样捕捉WebBrowser页面的滚动条滚动事件?
iamluda
2008-03-24 09:56:08
我在基于对话框的程序中,放了一个webbrowers控件,如何捕捉WebBrowser页面的滚动条滚动事件,我知道要捕获ISPID_HTMLWINDOWEVENTS2_ONSCROLL 事件,但我不知道如何在基于对话框的程序中,编写捕获事件的代码?
...全文
489
8
打赏
收藏
请问怎样捕捉WebBrowser页面的滚动条滚动事件?
我在基于对话框的程序中,放了一个webbrowers控件,如何捕捉WebBrowser页面的滚动条滚动事件,我知道要捕获ISPID_HTMLWINDOWEVENTS2_ONSCROLL 事件,但我不知道如何在基于对话框的程序中,编写捕获事件的代码?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
scq2099yt
2008-03-27
打赏
举报
回复
增加NavigateComplete2消息,在该消息中处理滚动后需要做的事情
iamluda
2008-03-26
打赏
举报
回复
HTMLWindowEvents2::onscroll Event
iamluda
2008-03-26
打赏
举报
回复
为了捕捉webbrowers 的滚动事件 ,他的接收期的函数是下面的那一个,
HRESULT IHTMLTextContainer::get_onscroll(VARIANT *p);
HRESULT IHTMLTextContainer::put_onscroll(VARIANT v);
对于get_onscroll这个函数的IID是多少?
iamluda
2008-03-25
打赏
举报
回复
在对话框中,捕捉webbrowers的事件步骤如下:
用OnDocumentComplete 方法来举例
1. 在 DLG派生类头文件定义OnDocumentComplete 方法:
afx_msg void OnDocumentComplete(LPDISPATCH lpDisp,
VARIANT FAR* URL);
2. 在 DLG派生类头文件中声明事件接收器:DECLARE_EVENTSINK_MAP()
3. 在 DLG派生类实现文件 (.cpp) 实现事件接收映射:
BEGIN_EVENTSINK_MAP(CXXXXDlg, CDialog)
ON_EVENT(CXXXXDlg, IDC_EXPLORER1, 259 /* DocumentComplete */,
OnDocumentComplete, VTS_DISPATCH VTS_PVARIANT)
END_EVENTSINK_MAP()
4. 在 DLG派生类实现文件 (.cpp) 实现 OnDocumentComplete 方法:
void CWBTstView::OnDocumentComplete(LPDISPATCH lpDisp,
VARIANT FAR* URL)
{
IUnknown* pUnk;
LPDISPATCH lpWBDisp;
HRESULT hr;
pUnk = m_webBrowser.GetControlUnknown();
ASSERT(pUnk);
hr = pUnk->QueryInterface(IID_IDispatch, (void**)&lpWBDisp);
ASSERT(SUCCEEDED(hr));
if (lpDisp == lpWBDisp )
{
// Top-level Window object, so document has been loaded
TRACE("网页已全部下载完毕\n");
}
lpWBDisp->Release();
}
我的问题是:
对于webbrowers 的滚动事件,
该如何编写代码,webbrowers的滚动事件的接口是那一个?接口的ID是多少? 请大家帮帮忙!
wshcdr
2008-03-24
打赏
举报
回复
首先需要挂接连接点
AfxConnectionAdvise(...);
然后
BEGIN_DISPATCH_MAP
DISP_FUNCTION_ID
xxxx
END_DISPATCH_MAP
在这里指定接受的事件函数,并实现该函数
关键的步骤如上
iamluda
2008-03-24
打赏
举报
回复
在OnDocumentComplete 中用 AfxConnectionAdvise 的方法挂接上了IHTMLWindow2 并且得到DISPID_HTMLWINDOWEVENTS2_ONSCROLL 的事件函数。
这句话如何理解
iamluda
2008-03-24
打赏
举报
回复
能否这样理解,就是如何在头文件中声明事件,如何在实现文件 (.cpp) 中实现事件映射和实现事件的方法,
iamluda
2008-03-24
打赏
举报
回复
怎么样通过DWebBrowserEvents2接口获得它的IHTMLWindow2接口
C#全能速查宝典
《C#全能速查宝典》共分为8章,分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及
事件
、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用...
vc++ 开发实例源码包
如题,此实例非常适合学习,重载并自绘了Wnd类,效果是上下文字、图片、文字由大到小和星星闪烁等
滚动
效果。实例使用了加载类似xml文件读取信息,然后显示。 COM_ATL_Tutorial 简单的atl控件演示 COM接口挂钩及其...
捕捉
WebBrowser
页面
的
滚动
条
滚动
事件
IHTMLWindow2::onscroll Property -------------------------------------------------------------------------------- Sets or retrieves a pointer to the event handler function ...设置
滚动
条位置
webbrowser
delphi
事件
详解
基础说明: 方法: GoBack 后退,使你在当前历史列表中...GoSearch 搜索,连接用户默认的搜索
页面
Navigate 连接到指定的URL Refresh 刷新当前
页面
,F5 Refresh2 同上,只是可以指定刷新级别,所指定的刷新级
delphi中
Webbrowser
的使用
1.获得网页中变量值 htm中 var currID=123 程序中可以这么调用 id := Form1.
WebBrowser
1.OleObject.Document.script.currID 值得说明的是,变量可以是javascript定义的,也可以是...调用会触发一个异常
事件
,即变量c
ATL
3,245
社区成员
48,537
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章