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.onerror=fnOnError;";
//屏蔽javascript脚本错误的javascript脚本
CString strJavaScriptCode = _T("function fnOnError(){return true;}window.onerror=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_)
#define AFX_WEBPAGE_H__AEBD50B8_

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

被折叠的 条评论
为什么被折叠?



