以前的方法繁琐,这里抄了别人的方法,做了简单修改。记录下。

首先要在CHtmlView的子类中,重载如下函数:

virtual void DocumentComplete(LPDISPATCH pDisp, VARIANT* URL);
virtual void NavigateComplete2(LPDISPATCH pDisp, VARIANT* URL);

这2个函数,不是下面的函数:

virtual void OnDocumentComplete(VARIANT* URL);
virtual void OnNavigateComplete2(VARIANT* URL);

在CHtmlView的子类中,添加一个成员,并在构造函数时初始化为NULL:

LPDISPATCH  m_lpURLDisp;

在NavigateComplete2中记录访问的LPDISPATCH。

void CXxxView::NavigateComplete2(LPDISPATCH pDisp, VARIANT* URL)
{if ( !m_lpURLDisp )m_lpURLDisp = pDisp;/* 可以不调用父类的方法, 建议调用。不调用Navigate相关的其他函数可能受到印象 */CHtmlView::NavigateComplete2(pDisp, URL);
}

在DocumentComplete中判断这个DISPATCH。

void CXxxView::DocumentComplete(LPDISPATCH pDisp, VARIANT* URL)
{if ( m_lpURLDisp && m_lpURLDisp == pDisp ){CUtils::DbgView(TEXT("真在完成: %s\n"), (LPCTSTR)(_bstr_t)URL);}/* 不调用父类的方法, 会导致OnDocumentComplete不会触发 */CHtmlView::DocumentComplete(pDisp, URL);
}

在访问URL前,重置m_lpWBDisp成员为NULL。

void CXxxView::_FreeDISP()
{if ( m_lpURLDisp )m_lpURLDisp->Release();m_lpURLDisp = NULL;
}void CXxxView::Browser(LPCTSTR Url)
{this->_FreeDISP();DWORD dwFlags = navNoHistory;CHtmlView::Navigate2(Url, dwFlags, NULL);
}

转载于:https://www.cnblogs.com/yvqvan/p/8583658.html

【MFC】在CHtmlView中准确判断页面加载完成相关推荐

  1. JS判断页面加载完毕

    //JS判断页面加载完毕,再隐藏加载效果层,一个简单的JS加载效果.document.onreadystatechange = function () {if (document.readyState ...

  2. vue 判断页面加载完成_vue项目搭建及总结

    一.vue的两种安装方式 (1)直接在html中引入vue.js (2)通过vue+nodeJS搭建 我们采用的是第二种方式 二.vue和nodeJS的关系 (1)nodeJS不是一个js框架,是一个 ...

  3. vue 判断页面加载完成_Vue实战040:nprogress页面加载进度条

    前言 很多时候在访问网页的时候我们总是看到页面在加载中,可以却不知道要加载多久,无期限的等待总是让人烦躁不安,所以我们希望能知道网页加载的进度,这样我们就能做到心中有数是否继续等待页面加载.这个功能我 ...

  4. html 判断页面加载完成,Javascript判断页面是否加载完成

    很多时候我们在使用document.getElementById的时候直接在script标签中获取对象,然后使用,此时程序会出现该对象为undefined. var dom=document.getE ...

  5. vue 判断页面加载完成_vue之骨架屏踩坑之路

    vue的首屏优化方式有很多种 骨架屏就是其中之一 作为一个前端开发 用户体验感是很重要的 关于页面的loading状态的展示,目前主流的主要有loading图和进度条两种 现今使用骨架屏的也越来越多 ...

  6. bootstrap.css 加载,使用Bootstrap.css 中IE下页面加载过慢问题

    @font-face { font-family: 'Open Sans'; font-style: normal; font-weight: 400; src: local('Open Sans') ...

  7. vue 判断页面加载完成_在Vue+webpack中详细讲解基础配置

    这篇文章主要介绍了Vue+webpack项目基础配置教程,需要的朋友可以参考下. 最近在学习webpack,跟着课程一个单页面应用,在这里记录一下. 这个部分主要讲了如何配置webpack的环境,以及 ...

  8. php 判断页面加载完,所有ajax执行完且页面加载完判断

    jquery ajax&load 方法导致 js效果不显示或显示后由于加载后ajax 重新布局页面导致效果错误. 解决思路:需要在ajax get post 或 load 等执行完后再去执行方 ...

  9. html网页载入后焦点,HTML5中,用于指定页面加载后是否自动获取焦点的input属性是 答案:autofocus属性...

    全球化是由西国主之,谓发展中国家利也:误 分别示插数与新之命者:俟:INSERT,UPDATE https口/ / image.zhihuishu.com / / / zh onlinexam ued ...

最新文章

  1. 修改mysql的时间/时区
  2. Java Code Convention Rules
  3. 深度剖析数据在内存中的存储1——数据类型
  4. rocketmq怎么保证消息一致性_从入门到入土(三)RocketMQ 怎么保证的消息不丢失?...
  5. [转载]Outlook 2016 显示正在启动... 无法进入Outlook的解决方案
  6. Android数据存储之SharedPreferencesSave存储(保存数据,读取数据的操作)
  7. 数据结构与算法(2)——栈和队列
  8. java 事件驱动 netty_Netty2-事件驱动的NIO框架(使用范例)
  9. 2个多边形,其中一个包围另一个,如何将中间的环带区域涂成红色
  10. (视频) 《快速创建网站》 3.2 WordPress多站点及Azure在线代码编辑器 - 扔掉你的ftp工具吧,修改代码全部云端搞定...
  11. 泡泡玛特通过港交所聆讯 上半年总收益8.18亿元
  12. ClassicLink概述
  13. python白鹅类型_fluent python 11.10节 鹅的行为有可能像鸭子
  14. 使用Bash Bunny从被锁定的系统抓取登陆凭据
  15. gwas snp 和_GWAS综述(生信文献阅读俱乐部精选)
  16. js return加分号_js分号的重要性
  17. TYVJ1288 飘飘乎居士取能量块 -SilverN
  18. 江湖救急笔记——计算机网络
  19. java代码到opcode_OPcode简介
  20. 培训班和科班出来的程序员有什么不同之处?

热门文章

  1. 48.结构体位域获取内存模型
  2. MFC接收命令行参数的三种方法
  3. 8.Layout布局应用
  4. 关于一部分数学知识》(工具向)(实时更新)
  5. 正则表达式的学习二:正则表达式的匹配规则总结
  6. [原]unity3d ios平台内存优化(一)
  7. 上交三月月赛[SJTU] 1105 path
  8. 《Shell脚本学习指南》第一章 背景知识
  9. Ubuntu 14.04安装mysql
  10. mongoose多条件模糊查询实例