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的好。

  • 相关阅读:
    [SAM学习笔记]
    CF513G3 Inversions problem
    AtCoder Beginner Contest 204
    [SDOI2017]序列计数
    CF993E Nikita and Order Statistics
    多项式板子
    多项式杂学笔记
    「雅礼集训 2017 Day5」远行
    Mysql备份恢复工具
    个人选择上网的流量方式对比
  • 原文地址:https://www.cnblogs.com/michaellee/p/1324873.html
Copyright © 2011-2022 走看看