zoukankan      html  css  js  c++  java
  • VC6.0 MFC中WebBrowser控件禁止新窗口弹出的解决办法

    http://blog.csdn.net/gnorth/article/details/7258293

    分类: WebBrowser MFC 禁止新窗口

     在百度上找了很多方法,没有一个能够完美的解决这个问题。

    我在XP SP3上测试,WebBrowser的OnNewWindow3事件中处理是无效的,不知道人家说XP SP2有效是怎么回事。

    那种创建一个隐藏窗口出来的办法,我个人反正是不愿意去用,总之感觉不太好,而且据说这是目前唯一的解决办法。

    后来实在没办法了,只能往土办法去想了,我们知道IE中有状态栏这个东西,当鼠标指向某个链接时,状态栏的文字就变成链接地址了。

    经过测试之后,确实可以用WM_GETTEXT来获取到链接,这就解决了OnNewWindow2中获取不到新窗口的链接的问题了。

    但是IE可以有状态栏,WebBrowser中我找了一下,没有发现能够显示状态栏的操作,在spy++中查看,也不像IE那样有状态栏的窗口。所以,我又仔细研究了一下WebBrowser关于状态栏的事件。后来发现StatusTextChange中其实就可以直接获取到状态栏的文字了。

    于是,写代码的事情就很简单了,而且是完美的解决问题,不管是js的   window.open    还是一个简单的新窗口链接。

    void CMWebDlg::OnNewWindow2Explorer1(LPDISPATCH FAR* ppDisp, BOOL FAR* Cancel)
    {
     VARIANT vars;
     m_Web.Navigate(strURL,NULL,NULL,&vars,&vars);
     *Cancel =TRUE;
    }

    void CMWebDlg::OnStatusTextChangeExplorer1(LPCTSTR Text) 
    {
     strURL=Text;
    }

    在类中或者CPP中  CString strURL; 一下即可。

  • 相关阅读:
    getchar,putchar函数
    强制类型转换和整数常量的数据类型及转换
    c语言整型的隐式数据 类型转换
    c语言整型数据输出格式声明
    c语言整型变量的储存空间,以及所表示的整数范围
    c语言常量
    c语言求回文数
    Android4.0源码目录结构详解
    MTK Android源代码目录
    Comparator 和 Comparable
  • 原文地址:https://www.cnblogs.com/dengpeng1004/p/4977214.html
Copyright © 2011-2022 走看看