IHTMLViewer实在是个好东西,最近发现它的两个用处:
1.显示图片,很多网上的文章都说不行,也有人说只能用file:///来显示本地的图片(所以,如果要显示服务器上的图片,得先下载到本机,再个性<img>标签)……其实大可不必这样,如果IHTMLViewer支持file://,那它岂能不支持http://呢?一试,果然可以。注意两点:一是图片Src要写完整(如:http://www.sharetop.cn/ufo/images/home.png)。二是要给出宽度与高度,不可省略,有效的标签如下:
<img src="http://www.sharetop.cn/ufo/images/home.png" width="60" height="60" />
2.拿来显示帮助信息,因为BREW应用要求有关于与帮助,所以我以前一直是用IStatic来显示帮助信息,其实用IHtmlViewer更方便格式化文字。而且,可以将HTML代码直接放在资源文件里作为字串资源来使用(这样做有可能字串会比较长),也可以把一个help.html文件作为图片资源(注意:一定要是图片资源),这样就更方便了。示例如下:
pBuffer = ISHELL_LoadResDataEx(pMe->pApp->pIShell,UFOPLAYER_RES_FILE,IDB_HELP_HTML,RESTYPE_IMAGE,(void*)NULL,&bufferSize);
if(pBuffer)
{
if( !pMemStream)
ISHELL_CreateInstance(pMe->pApp->a.m_pIShell, AEECLSID_MEMASTREAM, (void **)(&pMemStream));
if (pMemStream)
IMEMASTREAM_Set(pMemStream, (byte*)pBuffer,bufferSize, 12, 0);
IHTMLVIEWER_LoadStream(pMe->pViewer,(IAStream*) pMemStream);
IMEMASTREAM_Release(pMemStream);
}
IDISPLAY_Update(pMe->pApp->pIDisplay);
if(pBuffer)
{
if( !pMemStream)
ISHELL_CreateInstance(pMe->pApp->a.m_pIShell, AEECLSID_MEMASTREAM, (void **)(&pMemStream));
if (pMemStream)
IMEMASTREAM_Set(pMemStream, (byte*)pBuffer,bufferSize, 12, 0);
IHTMLVIEWER_LoadStream(pMe->pViewer,(IAStream*) pMemStream);
IMEMASTREAM_Release(pMemStream);
}
IDISPLAY_Update(pMe->pApp->pIDisplay);