`
mizhao1984
  • 浏览: 91668 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

mfc拦截CDHtmlDialog中某些特殊页面链接并做其他处理

阅读更多

在.h文件中定义一个函数
DECLARE_EVENTSINK_MAP()
virtual void XOnBeforeNavigate2(LPDISPATCH pDisp, VARIANT FAR* URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName, VARIANT FAR* PostData, VARIANT FAR* Headers, BOOL FAR* Cancel);
在.CPP中

BEGIN_EVENTSINK_MAP(CXXXHTMLDialog, CDHtmlDialog)
ON_EVENT(CXXXHTMLDialog, AFX_IDC_BROWSER, 250 /* BeforeNavigate2 */, XOnBeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
END_EVENTSINK_MAP()

void CXXXHTMLDialog::XOnBeforeNavigate2(LPDISPATCH pDisp, VARIANT FAR* URL, VARIANT FAR* Flags, VARIANT FAR* TargetFrameName, VARIANT FAR* PostData, VARIANT FAR* Headers, BOOL FAR* Cancel) {
  CString url = *URL;

  if (url == "http://localhost:8800/testhtml/zadan/zjmd.jsp"){

     CDHtmlDialog* m_myHtmlDg=new CDHtmlDialog();
     CWnd* pParent = NULL;
     m_myHtmlDg-> Create(IDD_DIALOG2,pParent);
     m_myHtmlDg-> Navigate(_T(url));
     m_myHtmlDg-> SetHostFlags(DOCHOSTUIFLAG_NO3DBORDER);
     m_myHtmlDg-> ShowWindow(SW_SHOW);

     *Cancel = true;
  }else{
     return;
  }
}

分享到:
评论

相关推荐

    在CDHtmlDialog中显示html脚本

    showhtml 工程:主功能实现库,可以在其它程序中使用它,包含showhtml/showhtml.api.h文件,然后链接showhtml.lib。其提供两个接口: CreateHtmlShow(),用于生成一个用来显示的窗口,它必需有一个父窗口,其返回值...

    CDHtmlDialog与网页交互技巧整理.pdf

    CDHtmlDialog是MFC(Microsoft Foundation Classes)库中的一个类,它允许开发者在对话框中嵌入HTML页面,从而实现更加丰富和动态的用户界面。这个类是MFC对Microsoft Internet Explorer ActiveX控件的封装,使得C++...

    CDHtmlDialog调用js代码

    首先,CDHtmlDialog是MFC对微软Internet Explorer Web Control(也称为MSHTML)的封装,使得VC++程序员能够方便地在对话框中嵌入HTML页面并与其交互。CDHtmlDialog继承自CDialog,因此我们可以像处理普通对话框一样...

    CDHtmlDialog简单实例

    这个简单实例将帮助我们理解如何在MFC应用程序中使用CDHtmlDialog来创建动态且富交互性的用户界面。 首先,CDHtmlDialog基于CDialog类,并扩展了对HTML的支持。通过使用CDHtmlDialog,我们可以利用HTML的灵活性和...

    DialogImage.zip_CDHtmlDialog_CDHtmlDialog 背景

    在Windows编程中,MFC(Microsoft Foundation Classes)库提供了一种高效的方式来开发桌面应用程序。CDHtmlDialog是MFC中一个非常有用的类,它允许开发者在对话框中嵌入HTML元素,从而实现更丰富的用户界面。这个...

    html.rar_C++ 与 HTML_MFC html_html

    本主题的核心是使用MFC中的`CDHtmlDialog`类来实现C++与HTML的融合。 `CDHtmlDialog`是MFC扩展库中的一个关键类,它允许开发者在MFC对话框中嵌入HTML,并提供了与HTML文档交互的能力。通过`CDHtmlDialog`,我们可以...

    ATL实现的CDHtmlDialog模板类

    ATL发展到现在,从未提供像MFC中的CDHtmlDialog一样的HTML页面布局且方便开发者使用的窗口基类,虽然也有DHtml Control可供使用,但并不能像MFC那样通过宏映射来方便地让开发者与页面元素之间进行任意的双向交互,...

    深入浅出MFC(DissectingMFC)

    5. **CDocument和CView类**:MFC中的文档/视图架构允许分离数据处理(文档)和显示(视图)。这部分将讲解如何实现数据存储和视图绘制。 6. **对话框(Dialog)**:MFC提供了用于创建模态和非模态对话框的类,如...

    ATL实现的CDHtmlDialog模板类v1.03

    相对1.02做了两处小改动: 1、当对话框打开关闭后再打开,在DEBUG版本下会断言失败,原因在于对话框窗口销毁时没有销毁WebBrowser控件窗口。 2、删除了对atlsafe.h的包含引用,这个文件在VC6的ATL3.0版本中是...

    IE_Sample.7z

    MFC是微软提供的一种C++库,用于简化Windows应用程序的开发,而CDHtmlDialog则是MFC中的一个类,它允许开发者在对话框中嵌入HTML界面,从而实现更丰富的用户交互。 描述中提到的“基于CDHtmlDialog对话框的MFC和JS...

    VC++基于MFC的图片浏览器(有多种特效)

    2. **CImage类**:MFC中的CImage类用于处理图像数据,支持常见的图像格式如BMP、JPEG、PNG等。在图片浏览器中,CImage类用于加载、显示和处理图片。 3. **图像特效**:项目描述中提到“多种特效”,这可能包括缩放...

    MFC类对应的头文件

    ### MFC类与头文件对应关系详解 #### 概述 Microsoft Foundation Classes (MFC) 是微软提供的一个基于Windows API的面向对象的类库。它为开发者提供了丰富的封装类,大大简化了Windows程序的开发过程。为了更好地...

    自己制作的MFC7.0树状结构层次图

    ### MFC7.0树状结构层次图解析 在深入探讨MFC7.0的类层次结构之前,我们先简要了解一下MFC(Microsoft Foundation Classes)的基本概念。MFC是微软提供的一套用于Windows应用程序开发的类库,它极大地简化了Windows...

    MFC浏览器的定制与扩展

    在MFC中,默认的浏览器控制站点是`CHtmlControlSite`类,它仅实现了`IDocHostUIHandler`接口。为了实现更多高级功能,我们需要创建自己的控制站点类来替代默认的站点。 #### 创建自定义的控制站点类 为了支持更丰富...

    数据库课程设计 银行系统

    CDHtmlDialog是MFC中的一个类,专门用于实现HTML(超文本标记语言)对话框。通过使用CDHtmlDialog,开发者可以利用HTML的丰富性和灵活性来设计应用程序的用户界面,同时保持与MFC应用程序的深度集成。这在银行系统中...

    窗口显示网页html

    在MFC中,可以使用COleControl或CDHtmlDialog类来集成这个控件。通过调用WebBrowser控件的接口,比如Navigate2方法,可以加载指定的URL。 标签中提到了"MFC"、"浏览器"和"C++",这意味着整个项目是使用C++语言,并...

    枚举网页中所有的标签元素

    在这个类中,我们可以重写一些成员函数,比如`OnInitDialog()`,以便初始化控件并设置DHTML页面。 2. **获取`IHTMLElementCollection`接口**:在`CDHtmlDialog`中,我们可以调用`GetDHtmlDocument`方法获取到`...

    调用拨打电话程序示例源代码

    在这种情况下,调用拨打电话的源代码可能会在HTML页面中嵌入JavaScript,并通过JavaScript与C++的`CDHtmlDialog`对象交互,然后由C++代码执行实际的拨打电话操作。 例如,在HTML中,我们可以有一个按钮,点击后触发...

    vc用http网页用户接口 (界面)

    在IT行业中,开发用户友好的应用程序是至关重要的,尤其是在Visual C++(简称VC)环境中。本文将深入探讨如何使用VC创建基于HTTP的网页用户接口(界面),并提供两个实例——CDHtml demo和DHtmlExplore,以帮助理解...

    Property Sheet View

    在MFC中,`CPropertySheet`类用于创建属性表,而`CPropertyPage`类则用来创建单个的属性页。`CPropertySheet`是对话框基类`CDHtmlDialog`或`CDialog`的派生类,它包含一个或多个`CPropertyPage`对象,每个`...

Global site tag (gtag.js) - Google Analytics