欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

如何给widget中的文字设置上划线

更新时间: 2014-01-05 02:45:29 责任编辑: Author_N1

 

怎么给Widget中的文字设置下划线?
我想通过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);

可以给文字加上下划线,可通过这种方法加下划线,等于重新给文字设了一个格式,会改变原来设定的字体大小和格式,改成了红色字体的格式,请问有没有办法还按照原来的格式给文字设置下划线?
--参考方法--
buiw中似乎没有这样的功能哦
--参考方法--
可以通过CustomWidget来实现~
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:45:29
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/14001/
本文WWW.DOC100.NET DOC100.NET版权所有。