文档介绍:IE控件高级使用方法发布日期:2005-05-1810:05浏览次数:文章评分::下载源文件打印杨老师称号:未设置简介:・・・文章概耍:本文介绍如下内容:1、如何显示内存中的HTML网页;2、如何屏蔽掉鼠标右键的上下文菜单;3、如何扩展HTML中的脚本(external)对象;4、如何显示HTML样式的对话窗;5、如何执行HTML脚本;本文介绍如下内容1、 如何显示内存中的HTML网页;2、 如何屏蔽掉鼠标右键的上下文菜单;3、如何扩展HTML中的脚本(external)对象;4、如何显示HTML样式的对话窗;5、如何执行HTML脚本;一、如何显示内存中的HTML网页或者因为网页保密的考虑;或者因为软件分发的考虑,有的时候就需耍让IE或IE浏览器控件显示内存或资源中的HTML网页。HtmlView::LoadFromResource()可以显示程序资源中的HTML内容。我们都知道MFC的CHtmlView其实是对IWebBrowser2的一个包装,但是在IWebBrowser2中却没有类似的方法。那么它是如何实现的那?步骤如下:1、首先通过IWebBrowser2::Navigate2()显示一个网贝,其目的是产生有效的对象,从而得到IHTMLDocument2接口;2、 IWebBrowser2::get_Document()得到IHTMLDocument2接口指针;3、 IIITMLDocument2::Querylnterface()得到IPersistStreamlnit接口指针;4、 IPersistStreamlnit::InitNewO初始化接口对象;5、 IPersistStreamlnit::Load()装载内存中的HTML数据流(IStream*);内存指针转换为流的方法是:I、 GlobalAllocO中请内存;II、 复制HTML字符串内容到上述的内存中;III、 CreateStreamFromllGlobal()转换内存为IStream指针;原理性代码如下:viewsourceprint?01.//(&CComVariant(_T("about:blank")),NULL,NULL,NULL,NULL);03.//omPtr<IDispatch>spDoc(());05.//omQIPtr<IPersistStreamlnit,&IIDIPersistStreamlnit>spPSI(spDoc);07.//申请内存,(LPTSTR)::GlobalAlloc(GPTR,::lstrlen(lplltml)+1);(lpMem,"");//Ptr<IStream>spStream;CreateStreamOnHGlobal(lpMem,TRUE,&spStream);//初始化后,装载显示spPSI->InitNew();spPSI->Load(spStream);图一、IE控件显示内存中的HTML文件图二、HTML对话窗IE所能支持的数据传输协议,除了大家所熟悉的http、ftp、file 还有一个协议是res,它表示浏览显示文件中的HTML