vc显示html文档,VC++ 显示内存中地HTML内容
IE
WebControl控件提供了显示HTML的功能,但是只能够显示URL或者是文件。很多朋友都询问关于显示内存中HTML内容的方法,前几天我在网上找到一段代码,我在这里进行一些讲解。
思路:
先用WebControl显示一个空的HTML文件(对于WebControl的用法有了解),然后利用接口IID_IHTMLDocument2,来重新设置Body标记内的InnerHTML属性。(需要对DHTML有了解)
实现方法:
从CHTMLView派生新类CMoreHtmlView。
显示空的HTML文件,可以直接利用Navigate2方法,你可以指定一个默认的HTML文件,不过WebControl还可以显示定义在资源中的内容,根据Res
Protocol的定义,显示使用资源中的数据时用下面的表示方法:
res://sFile[/sType]/sID
sFile:表示包含资源的文件
sType:资源的类型,例如RT_HTML或者你自己定义的资源类型,省略时为RT_HTML,
sID:资源ID
实例代码
void CMoreHtmlView::NavigateMemory()
{
//get application name
CString sAppName=AfxGetAppName();
CString sResourseID;
//get resourse ID of Empty Html
sResourseID.Format("%d", IDR_EMPTY_HTML);
CString sNavigatePath;
//compile
sNavigatePath="res://"+sAppName+".exe/"+sResourseID;
Navigate2( sNavigatePath); //装入资源中的HTML文件
此行实现功能
//Activate memory mode
m_bMemoryMode=TRUE;
}
修改Body标记内InnerHTML属性。
实例代码
BOOL CMoreHtmlView::PutBodyContent(LPSTR lpstrContent)
{
//store body content
if( lpstrContent) m_lpstrBodyContent=lpstrContent;
//check if HtmlDocument initialized
if( m_pHtmlDoc2) //m_pHtmlDoc2 指向接口
IID_IHTMLDocument2
{
HRESULT hr = S_OK;
IHTMLElement *pBodyElement;
//get body element
hr=m_pHtmlDoc2->get_body( &pBodyElement);
//得到Body标记
//put content to body element
_bstr_t pbBody( m_lpstrBodyContent);
hr=pBodyElement->put_innerHTML( pbBody);
//设置HTML标记内内容
if( hr==S_FALSE) return FALSE;
else return TRUE;
}
else return FALSE;
}
如何得到IHTMLDocument2
void CMoreHtmlView::OnDocumentComplete(LPCTSTR lpszURL)
{
// show html on first loading of document
if(m_bMemoryMode)
{
LPDISPATCH lpDispatch;
lpDispatch=GetHtmlDocument();
ASSERT(lpDispatch);
//get html document from IDispatch
HRESULT hr=lpDispatch->QueryInterface(IID_IHTMLDocument2,
(void**)&m_pHtmlDoc2); //此行实现功能
if( SUCCEEDED(hr)) ShowMemoryHtml();
}
CHtmlView::OnDocumentComplete(lpszURL);
}
示范代码的阅读:
上面提到的三点是基本的方法,但是要阅读我找到的这份代码需要做一点特别的说明。关于IHTMLDocument2的获得是在文件装入结束后才查询此接口。
vc显示html文档,VC++ 显示内存中地HTML内容相关推荐
- php word 图片无法显示,Word文档不显示图片解决方法
同事的文档中的图片都不显示了,问我怎么回事,这个问题我已经遇到很多次了,其实问题有多种,要逐一排查,下面icech就将所有可能的原因和解决方法列一下,供参考: 1.可能是由于正在普通视图或大纲视图中工 ...
- vc可以实现对话框里显示html文档内容,也可以显示word内容吗,VC6中使用CHtmlView在对话框控制中显示HTML文档...
VC6中使用CHtmlView在对话框控制中显示HTML文档 2008-02-23 05:29:58来源:互联网 阅读 () 在Visual Studio 6.0中出现了一个新类CHtmlView,利 ...
- linux 查看 文档 不显示注释 命令
原文:http://www.weiruoyu.cn/?p=661 最近发现一个很好的命令,就是linux 查看 文档 不显示注释 的命令 [root@localhost ha.d]# cat ha.c ...
- WPF:WPF显示PDF文档 之 编译 MoonPdfLib库
简述 在之前一篇文章中,我讲述了如何使用WPF显示PDF文档,开发环境是VS2013 + .Net FrameWork4.5 + x64.因为后面我使用了.Net FrameWork 4.6.1, ...
- VC++ MFC单文档应用程序SDI下调用glGenBuffersARB(1, pbo)方法编译通过但执行时出错原因分析及解决办法:glewInit()初始化的错误...
1.问题症状 在VC++环境下,利用MFC单文档应用程序SDI下开发OpenGL程序,当调用glGenBuffersARB(1, &pbo)方法编译通过但执行时出错,出错代码如下: OpenG ...
- 图标和文字跟着div比例放大缩小_Word文档页面显示比例与单页多页,文本的输入、修改、删除与插入...
在默认情况下,文档页面都以100%显示,但最大可放大到500%,最小可缩小到10%,可根据自己的爱好设置.一般保持默认即可.另外,还可以设置一屏显示一页还是多页:此外,还能把文档设置为页宽. 在 Wo ...
- 转:在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档
在 C# 中使用 P/Invoke 调用 Mupdf 函数库显示 PDF 文档 一直以来,我都想为 PDF 补丁丁添加一个 PDF 渲染引擎.可是,目前并没有可以在 .NET 框架上运行的免费 PDF ...
- MSDN帮助文档 无法显示该网页 的问题解决方案(转)
MSDN帮助文档 "无法显示该网页" 的问题解决方案 以前就遇到过这样的问题,还以为是IE7导致的.后来重新安装了IE7也没有解决.后来就重新安装MSDN了,非常郁闷.今天终于知道 ...
- 解决WORD文档无法显示链接的图像问题
解决WORD文档无法显示链接的图像问题 参考文章: (1)解决WORD文档无法显示链接的图像问题 (2)https://www.cnblogs.com/zhangjunrui/p/6659473.ht ...
最新文章
- Mysql数据库编码转换问题
- 4.1.2 数据交换方式
- 手动封装element-ui里面的button组件
- linux 笔记之一mysql源码包安装
- 不要根据自己的喜好创业
- 白帽黑客眼中的网络安全 挡黑客财路曾收恐吓信
- 阿里架构师手写Tomcat——Session源码解析
- NSCharacterSet 简单用法
- 你可以退部的,不必说抱歉
- 云计算呼叫中心_云呼叫中心是如何有效保护客户信息的?
- 雷石柏云服务器指令,雷石KTV人工智能,让歌唱更自由
- 爱荷华州立大学计算机科学,爱荷华州立计算机科学庆祝成立50周年
- 2022 年牛客多校第五场补题记录
- HTML5视频与字幕使用的介绍
- EMC设计理论通俗非科班学习笔记(完结)
- 计算机网络复习资料(前六章谢希仁版)
- 基于树莓派4b的ubuntu20.04mate配合思岚科技A1激光雷达读取数据,建图、保存和基于arduino的下位机控制
- arduino灯带随音乐_【创客玩音乐】用灯带让音乐可视化
- 国产信创Linux桌面系统比较:软件包格式及软件管理、桌面环境及桌面应用
- 没事别惹程序员_他们可是能毁灭地球的生物
热门文章
- ubuntu 16.04 安装anaconda tensorflow opencv keras openslide-python pycharm
- python文件读取方法read(size)的含义是_Python file read()方法
- 路由器DNS被劫持 解决办法、网站被劫持怎么办怎么解决
- 看了DOS中断后我内牛满面
- Docker的基本操作命令
- Home Assistant 开发指南
- 2013-10 阿丹励志笔记(1)
- 20200511-01 基于 QCustomPlot 移植到 QML 上(qt.514)
- oracle 查看考试成绩,oracle认证考试成绩如何查询?
- java改变字体_java字体设置