本站动态:

BUIW中的HTMLWidget

在BREW UI的开发中,很少会用到HTMLWidget。它本该在浏览器等程序中使用到,不过现在需要让一个提示FORM能够显示图文混排的效果,从而想到了使用HTMLWidget。第一次使用,当然想测试测试它对HTML的支持情况了。

对应的HTML代码在宏HTMLSTR中定义:

#define HTMLSTR "<font color=green>hello</font>,<img src=fs:/bad.gif> \
  <b>Sh<font color=red>o</font>sh</b>,<br> <img src=fs:/test.bmp> \
  <font color=blue size=6>wel</font><font color=red>com<sup>e</sup></font><i>!</i><br> \
  <input type=text value=enter><input type=button value=yes size=4>"

从效果来看,还是有很多是不能够支持的,比如斜体,比如sup等(另外css一点也不支持)。并且因为sup的开始导致font的提前结束。

而图片,虽然有显示,但是不是我所指定的图片。看来HTMLWidget是支持图片的显示的,只是不认fs这样的URL(在brew中,都是用“fs:/”去访问efs中的文件的)。

在IE浏览器的显示效果为(将图片路径设置正确后):

测试代码为:

  1.         do
  2.         {
  3.                 IModel *pDocModel = NULL;
  4.                 int nNumWritten = 0;
  5.                 pMe = (CalcMainForm*) MALLOC(sizeof(CalcMainForm));
  6.                 BREAKIFNULL_FATAL(pMe,"Fail: %d");
  7.                 
  8.                 ISHELL_AddRef(pIShell);
  9.                 pMe->pIShell = pIShell;
  10.                 
  11.                 ISHELL_CreateInstance(pMe->pIShell, AEECLSID_HTMLWIDGET, (void**)&pMe->pHTMLWidget);
  12.  
  13. #define HTMLSTR "<font color=green>hello</font>,<img src=fs:/bad.gif> \
  14.         <b>Sh<font color=red>o</font>sh</b>,<br> <img src=fs:/test.bmp> \
  15.         <font color=blue size=6>wel</font><font color=red>com<sup>e</sup></font><i>!</i><br> \
  16.         <input type=text value=enter color=#358879><input type=button value=yes size=4>"
  17.  
  18.                 IWIDGET_GetModel(pMe->pHTMLWidget, AEEIID_DOCMODEL, (IModel **)(void **)&pDocModel);
  19.                 if (NULL != pDocModel)
  20.                 {
  21.                         IDOCMODEL_Write(pDocModel, HTMLSTR, STRLEN(HTMLSTR), &nNumWritten);
  22.                         DBGPRINTF("nNumWritten = %d", nNumWritten);
  23.                         IDOCMODEL_WriteTerminate(pDocModel);
  24.                 }
  25.                 
  26.                 ISHELL_CreateInstance(pMe->pIShell,AEECLSID_Q_FORM,(void**)&pMe->pIForm);
  27.                 IFORM_SetWidget(pMe->pIForm, WID_FORM, pMe->pHTMLWidget);
  28. /*              
  29.                 HANDLERDESC_Init(&pMe->CalcMainFormHandler, 
  30.                         CalcMainForm_HandleEvent,
  31.                         pMe,
  32.                         CalcMainForm_Free);
  33.                 
  34.                 //Setting the handler for the Form//
  35.                 IFORM_SetHandler(pMe->pIForm,&pMe->CalcMainFormHandler);
  36.                 bHandlerSet = TRUE;
  37. */
  38.                 *ppObj=pMe->pIForm;    
  39.         } while (FALSE); 


[本日志由 shosh 于 2009-02-18 11:20 AM 编辑]
文章来自: Shosh原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: buiw HTMLWidget brew
相关日志:
评论: 2 | 引用: 0 | 查看次数: 1389
回复回复111[2010-02-26 09:44 AM | del]
受益匪浅,正在想这方面东西。谢谢
评论由Shosh回复于2010-02-26 09:41 PM Shosh回复[2010-02-26 09:41 PM]
HTML Widget一般很少用的。我当时也只是随便测试了一下而已,没想到还能帮到你,真是荣幸。
回复回复bencharluo[2009-09-28 11:39 AM | del]
不知所云,道行太浅啊我
评论由Shosh回复于2009-09-29 08:42 PM Shosh回复[2009-09-29 08:42 PM]
简单的说就是BUIW中HTMLWidget的使用以及它的表现。
如果没有接触手机开发或没有接触BREW,没看明白是很正常的。
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 1000 字 | UBB代码 开启 | [img]标签 关闭