• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 抓取IE刷新事件refreshDISPID_HTMLWINDOWEVENTS2_ONUNLOAD

抓取IE刷新事件refreshDISPID_HTMLWINDOWEVENTS2_ONUNLOAD

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了onunload事件,onunload,window.onunload,onunload不执行,js onunload等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 抓取IE刷新事件 refresh DISPID_HTMLWINDOWEVENTS2_ONUNLOAD
描述:

标题多搞几个关键词
方式1:
我在DISPID_DOCUMENTCOMPLETE事件中
a.AtlAdvise(pHtmlWin,(IDispatch*)this,DIID_HTMLWindowEvents2,&dwEvent);抓取对应的DISPID_HTMLWINDOWEVENTS2_ONUNLOAD 事件,但是IHTMLEventObj::get_srcElement对应的获取的是空值
或者
b.
AtlAdvise(pHtmlWin,(IDispatch*)this,DIID_HTMLDocumentEvents2,&dwEvent);抓取对应的DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE
 事件,但是IHTMLEventObj::get_srcElement对应的获取的是空值
方式2:
http://www.codeproject.com/KB/IP/detecting_the_ie_refresh.aspx
缺点,如果有框架或者iframe则不知道是哪个页面发出的刷新


解决方案1:

你的思路是什么啊?让我们学习一下

解决方案2:

对啊,知道的 传授一下,

解决方案3:

遍历根doc下的所有的frame,针对每个frame的window都建立事件连接

解决方案4:

HRESULT CViewSource::Invoke(DISPID dispidMember, 
REFIID riid, 
LCID lcid, 
WORD wFlags,
DISPPARAMS* pDispParams, 
VARIANT* pvarResult,
EXCEPINFO*  pExcepInfo,  
UINT* puArgErr)
{
   if (!pDispParams)
      return E_INVALIDARG;
 
   // Document complete
   if (dispidMember == DISPID_DOCUMENTCOMPLETE)
   {
   GetDocumentContent();
   m_bDocumentCompleted = true;
   }
   // Download complete (to catch refresh and F5)
   if (dispidMember == DISPID_DOWNLOADCOMPLETE)
   if (m_bDocumentCompleted)
GetDocumentContent();
   // Quit
   if (dispidMember == DISPID_ONQUIT)
OnQuit();
   return S_OK;
}

解决方案5:

IE的刷新针对的是根文档,即IWebBrowser::QueryInterface(IID_IHTMLDocument2, &pDoc);得到的文档,里面的frame全部都一起刷新。刷新后所有的文档指针可能都变了,你应该连接DWebBrowserEvents2::DocumentComplete事件,重新获取文档接口


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 抓取IE刷新事件refreshDISPID_HTMLWINDOWEVENTS2_ONUNLOAD

相关文章

  • 2017-06-05 启动打印机打印时,任务管理器中的打印进程是什么?还是没有?
  • 2017-06-04 MFCACTIVEX继承Edit的问题
  • 2017-06-04 MFCActiveX控件安装的
  • 2017-06-05 请教高手,如何能调用另一进程里的某个函数?
  • 2017-06-04 请bobobCOM中……不要污蔑人,请解释清楚
  • 2017-06-05 子对象定义的一点疑问
  • 2017-06-04 explorer右键Shell扩展添加多个菜单项的问题
  • 2017-06-05 全局线程函数中创建csocket失败???why?
  • 2017-06-04 散分。。使用IContextMenu接口添加菜单项,跟其他自定义菜单项冲突
  • 2017-06-05 DLL函数中怎样用gcvt

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 我能给的最高分了!线程效率问题
    • 请问win32的几种同步对象?
    • 使用ATL/WTL开发网页Activex控件,如何用代码生成Tabcontrol?
    • new对象数组失败,100分相送
    • 哪有C++的XML解析类,能读XML的就行,最好使用MS的DOM接口来做的。
    • 数字签名怎么实现???
    • 为什么我总是入不了门?
    • #import"msado15dll"怎样相对路径应用
    • 为什么我的应用程序InvokeActiveX的接口不成功啊!使用CoCreateInstance方式
    • [求助]串口API读取出数据,但memcpy后就不对了

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有