网页google地图加载(一)

本文介绍了一个C++程序如何加载Google地图并屏蔽无网络时的错误提示。通过CHtmlView类的子类CMyHtmlView,以及CWebPage类来实现。主要涉及重写OnNavigateComplete2函数,插入JavaScript代码来处理错误。CWebPage类提供了一系列方法,如SetDocument, GetHtmlDocument等,便于与网页交互和调用JavaScript函数。" 123943572,8282586,社区风控算法实践与策略,"['大数据', '风险管理', '算法应用', '社区管理', '自然语言处理']
摘要由CSDN通过智能技术生成


CMyHtmlView       m_web;//CHtmlView类的子类
 CWebPage          m_webPage;

//创建控件,加载google网址

//下面是调用不完整的接口。。需自己实现

。。。。。。。。

//CWebPage这个类可以网上自己下载实现一些自己需要的功能。


CHtmlView该类重写:

构造和虚构函数访问属性改为公有。

//下面这个函数功能是屏蔽在无网络的情况下,弹出的错误提示对话框

void CMyHtmlView::OnNavigateComplete2(LPCTSTR strURL)
{
 // TODO:  在此添加专用代码和/或调用基类
 CComPtr<IDispatch>   spDisp = GetHtmlDocument();
 if (spDisp != NULL)
 {
  CComPtr<IHTMLDocument2> doc;
  spDisp->QueryInterface(IID_IHTMLDocument2, reinterpret_cast<void**>(&doc));
  if (doc != NULL)
  {
   IHTMLWindow2 * pIhtmlwindow2 = NULL;
   doc->get_parentWindow(&pIhtmlwindow2);
   if (pIhtmlwindow2 != NULL)
   {//"function fnOnError(msg,url,lineno){alert('script error:\\n\\nURL:'+url+'\\n\\nMSG:'+msg +'\\n\\nLine:'+lineno);return true;}window.οnerrοr=fnOnError;";
    //屏蔽javascript脚本错误的javascript脚本
    CString strJavaScriptCode = _T("function fnOnError(){return true;}window.οnerrοr=fnOnError;");
    BSTR bstrScript = strJavaScriptCode.AllocSysString();
    CString strLanguage(_T("JavaScript"));
    BSTR bstrLanguage = strLanguage.AllocSysString();
    long lTime = 1 * 1000;
    long lTimeID = 0;
    VARIANT varLanguage;
    varLanguage.vt = VT_BSTR;
    varLanguage.bstrVal = bstrLanguage;
    VARIANT pRet;
    //把window.onerror函数插入入当前页面中去
    pIhtmlwindow2->execScript(bstrScript, bstrLanguage, &pRet);
    ::SysFreeString(bstrScript);
    ::SysFreeString(bstrLanguage);
    pIhtmlwindow2->Release();
   }
  }
 }

 CHtmlView::OnNavigateComplete2(strURL);
}




// WebPage.h: interface for the CWebPage class.
//
//

#if !defined(AFX_WEBPAGE_H__AEBD50B8_EE66_40AB_8B92_C4EECB9BCD22__INCLUDED_)
#de

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值