文档介绍:IE 控件高级使用方法发布日期: 2005-05-18 10:05 浏览次数: 435 次标签: COM 文章评分: 操作: 下载源文件打印杨老师称号: 未设置简介: ... 文章概要: 本文介绍如下内容:1、如何显示内存中的 HTML 网页;2、如何屏蔽掉鼠标右键的上下文菜单;3、如何扩展 HTML 中的脚本(external) 对象;4、如何显示 HTML 样式的对话窗;5、如何执行 HTML 脚本; 本文介绍如下内容 1 、如何显示内存中的 HTML 网页; 2 、如何屏蔽掉鼠标右键的上下文菜单; 3 、如何扩展 HTML 中的脚本(external) 对象; 4 、如何显示 HTML 样式的对话窗; 5 、如何执行 HTML 脚本; 一、如何显示内存中的 HTML 网页或者因为网页保密的考虑; 或者因为软件分发的考虑, 有的时候就需要让 IE或 IE 浏览器控件显示内存或资源中的 HTML 网页。在 MFC CHtmlView::LoadFromResource() 可以显示程序资源中的 HTML 内容。我们都知道 MFC 的 CHtmlView 其实是对 IWebBrowser2 的一个包装, 但是在 IWebBrowser2 中却没有类似的方法。那么它是如何实现的那?步骤如下: 1、首先通过 IWebBrowser2::Navigate2() 显示一个网页, 其目的是产生有效的对象,从而得到 IHTMLDocument2 接口; 2、 IWebBrowser2::get_Document() 得到 IHTMLDocument2 接口指针; 3、 IHTMLDocument2::QueryInterface() 得到 IPersistStreamInit 接口指针; 4、 IPersistStreamInit::InitNew() 初始化接口对象; 5、 IPersistStreamInit::Load() 装载内存中的 HTML 数据流(IStream *); 内存指针转换为流的方法是: I、 GlobalAlloc() 申请内存; II、复制 HTML 字符串内容到上述的内存中; III 、 CreateStreamFromHGlobal() 转换内存为 IStream 指针; 原理性代码如下: view sourceprint? 01.// 显示一个空白网页 ( &CComVariant(_T("about:blank")),NULL,NUL L,NULL,NULL); 03.// 得到 IHTMLDocument2 指针 omPtr< IDispatch > spDoc(()); 05.// 得到 IPersistStreamInit 指针 omQIPtr< IPersistStreamInit, &IID_IPersistStreamInit > spPSI( spDoc ); 07.// 申请内存, 复制 HTML 字符串 lpMem = (LPTSTR)::GlobalAlloc( GPTR, ::lstrlen( lpHtml )+1 ); ( lpMem, " 10. 11. xxx xxx" ); 12.//