我想通过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来实现~