首先要得到字体,在2nd Edition SDK Feature Pack 2中, 中文字体只有CombinedChinesePlain12和CombinedChinesePlain16两种.默认的是CombinedChinesePlain12, 也就是EikEdwin字体只能在这两种字体中切CEikRichTextEditor字体要换为CombinedChinesePlain16,首先要得到相应字体, 有两种方法:
1) 用GetNearestFontInTwips.
TFontSpec sFontSpec;
sFontSpec.TTypeface.iName.Copy(_L("CombinedChinesePlain16"));
sFontSpec.iHeight = 190; // 应该是190,不太确实. 确实数字可以从第二种方法得到.
CFont * sFont;
CCoeEnv::Static()->ScreenDevice()->GetNearestFontInTwips(sFont,sFontSpec);
2) 用系统TitleFont的设定:
CFont* sFont = (CFont*) CEikonEnv::Static()->TitleFont();
得到相应字体后,应该可以改变CEikRichTextEditor字体了:
TFontSpec sFontSpec = sFont->FontSpecInTwips();
iCharFormatMask.SetAttrib(EAttFontTypeface);
iCharFormatMask.SetAttrib(EAttFontHeight);
iCharFormat.iFontSpec.iTypeface = sFontSpec.iTypeface;
iCharFormat.iFontSpec.iHeight = sFontSpec.iHeight;
SelectAll();
ApplyCharFormatL(iCharFormat, iCharFormatMask);
更多支持请到帖子:http://discussion.forum.nokia.com/forum/archive/index.php/t-70558.html