怎么给Widget中的文字设置下划线?

llsll21 2010-06-24 04:07:32
我想通过Widget模拟超链接文字,用户设定文字大小和颜色,我把文字以超连接的方式显示。

现在可以通过IWidget_SetFontClass(m_pWidget, fontClass)来设定字体格式,因为用户设定的字体是以bold|lager这类的格式设定的,系统的AEEFontsStandard.BID文件中对fontClass的定义如下:

#define AEECLSID_FONT_STANDARD11 0x0102f679
#define AEECLSID_FONT_STANDARD11B 0x0102f67a
#define AEECLSID_FONT_STANDARD15 0x01030852
#define AEECLSID_FONT_STANDARD15B 0x01030853
#define AEECLSID_FONT_STANDARD18 0x0102f67b
#define AEECLSID_FONT_STANDARD18B 0x0102f67c
#define AEECLSID_FONT_STANDARD23 0x0102f67d
#define AEECLSID_FONT_STANDARD23B 0x0102f67e
#define AEECLSID_FONT_STANDARD26 0x0102f67f
#define AEECLSID_FONT_STANDARD26B 0x0102f680
#define AEECLSID_FONT_STANDARD36 0x0102f681

也就是说只能设定加粗和字体大小。我两加下划线,通过下面的代码:

IHFont* pTempFont = NULL;
ITypeface *pitf = NULL;
int dwResult;

dwResult = ISHELL_CreateInstance(((AEEApplet*)GETAPPINSTANCE())->m_pIShell, AEECLSID_BTFETypeface,(void**)&pitf);
int ret = 0;
if (dwResult == SUCCESS)
{
ret = ITypeface_NewFontFromClassID(pitf, AEECLSID_ClvBold, 18, &pTempFont);
}
if(SUCCESS == ret)
{
IHFont_SetUnderlineStyle(pTempFont, HFONT_LINEEFFECT_SINGLE);
}

IWidget_SetFont(m_pWidget,(IFont*)pTempFont);

可以给文字加上下划线,可通过这种方法加下划线,等于重新给文字设了一个格式,会改变原来设定的字体大小和格式,改成了红色字体的格式,请问有没有办法还按照原来的格式给文字设置下划线?
...全文
1742 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hui22021616 2010-07-27
  • 打赏
  • 举报
回复
先把普通的文本全部画出来,然后确定需要做成超链接样式的文本的位置,在相应的区域换一种颜色画文字,然后再设定区域,在下面用IDISPLAY_FILLRECT画一条线出来
bxk253387223 2010-06-29
  • 打赏
  • 举报
回复
可以通过CustomWidget来实现~
FLYUP_CHEN 2010-06-24
  • 打赏
  • 举报
回复
buiw中似乎没有这样的功能哦

2,853

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧