zoukankan      html  css  js  c++  java
  • DOCHOSTUIFLAG_HOST_NAVIGATES 标志位有可能导致WebBrowser控件工作异常

          在WebBrowser控件的IDocHostUIHandler::GetHostInfo() 方法中,针对IE7以及以上版本,新支持了DOCHOSTUIFLAG_HOST_NAVIGATES、DOCHOSTUIFLAG_ENABLE_REDIRECT_NOTIFICATION、DOCHOSTUIFLAG_USE_WINDOWLESS_SELECTCONTROL、DOCHOSTUIFLAG_USE_WINDOWED_SELECTCONTROL等几个新的标志位。其中DOCHOSTUIFLAG_HOST_NAVIGATES 标志位一定要慎用。经测试后发现,某些情况下该标志位会引起WebBrowser"停止响应"问题。

          具体表现如下:

    1) 设置该标志位后,对于通过脚本设置窗体大小位置的情况,相应事件将不会被触发。具体包括DWebBrowserEvents2中的WindowSetHeight、WindowSetLeft、WindowSetTop、WindowSetWidth 等事件。如果您想通过捕捉DWebBrowserEvents2的一系列事件来控制通过脚本中类似window.open() 产生的新窗体时。以上事件将不会通知即将创建的窗体大小和位置;

    2) 设置该标志位后,若在NewWindow2、NewWindow3中设定Cancel = true;那么会使WebBrowser进入"假死"状态,该状态的表现就是,在上次Cancel = true;取消创建新窗体的操作后,再次导航其它页面,WebBrowser将不会有任何的事件通知,并且WebBrowser也不会真正执行导航操作。当再次导航(调用Navigate或Navigate2方法)时才会恢复正常;

         对于WebBrowser这个神物,没事儿还是不要乱设Flag的好。

  • 相关阅读:
    用U3D寻找看电视的感觉!!
    MipMap
    什么是 A 轮融资?有 B轮 C轮么?
    Java写的斗地主游戏源码
    sqlserver sp_spaceused用法
    SQL中的全局变量和局部变量(@@/@)
    SQL2008数据库导出到SQL2000全部步骤过程
    生成Insert语句的存储过程
    物理机连接虚拟机数据库
    配置sql server 2000以允许远程访问
  • 原文地址:https://www.cnblogs.com/michaellee/p/1324873.html
Copyright © 2011-2022 走看看