您的位置:首页 > 编程语言 > C语言/C++

C++实现WebBrowser控件中对鼠标点击事件的监听,并获取所点击标签的超链接

2013-03-13 14:00 1751 查看
在查询资料之后,终于实现了如题功能。当然,在文章中对主要方法和思路做出解释,具体实现方法我用一个小例子做了介绍,下载链接:http://download.csdn.net/detail/ictwangbiao/5136738

主要步骤如下:

1、接收网页事件(参考资料)

要响应网页事件,需要实现IDispatch接口,并在其Invoke()方法中处理收到的消息。对于MFC,因为CCmdTarget类已经实现了该接口,所以只需要继承CCmdTarget并结合相关宏就能简单做到了。

注意1:在该类中,一定要在初始化函数中激活IDisptach接口,使用函数EnableAutomation()函数,实际上,初始化函数也只需要做这项工作就可以了。

注意2:该类中对点击事件响应的函数,比如OnClick,它会很笨地接收所有的点击事件,包括那些没有超链接对象被点击的事件,也包括那些背后有好几层连接的对象点击事件,所以我们需要根据点击事件逐级往上检查。

2、在窗口程序中安装事件处理响应函数

主要包括安装函数InstallEventHandler,卸载函数UninstallEventHandler,安装响应函数OnDocumentComplete,卸载响应函数OnBeforeNavigate2和OnDestroy等五个函数。

注意:在处理事件响应函数的安装和卸载要格外小心,重复安装可能导致重复接收消息甚至导致程序崩溃,而忘记卸载则会导致COM资源泄漏。

相关阅读:http://www.codeproject.com/Articles/1731/Handling-HTML-Element-Events-in-MFC-applications-A

//END ICTwangbiao
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: