[ZT]Font应用

可以通过iEikonEnv-〉***Font()来获得Cfont指针。字体有TitleFont(),DenseFont(),DenseFont(),AnnotationFont(),Font() 共5种。画下划线的方法
font = iEikonEnv->LegendFont();
textPoint.iY = (aRect.Height() / KMiddleTextTwoVertAlign); gc.UseFont(font);//使用legendFont
gc.SetPenColor(colorBlue);//定义gc的clor
gc.SetUnderlineStyle(EUnderlineOn);//画下划线
gc.DrawText(text, textPoint); gc.SetUnderlineStyle(EUnderlineOff);//下划线结束
gc.DiscardFont();//释放内存中使用的discard


画删除线:
font = iEikonEnv->SymbolFont();
textPoint.SetXY(aRect.Width() / KMiddleTextOneHorizAlign, aRect.Height() / KMiddleTextOneVertAlign);
gc.UseFont(font);
gc.SetPenColor(colorGreen);
gc.SetStrikethroughStyle(EStrikethroughOn); //开始
gc.DrawText(text, textPoint);
gc.SetStrikethroughStyle(EStrikethroughOff);//结束
gc.DiscardFont();

gc的颜色的定义AKN_LAF_COLOR[/b](Tint color);可以用这宏来定义。返回的是TRgb。

可以通过iCoeEnv(CCoeEnv)中的ScreenDevice()得到CWsScreenDevice(屏幕[url=http://51dev.com]软件[/url]装置通过这个类可以设置屏幕或询问屏幕参数)TypefaceSupport()这个方法就可以得到,手机屏幕支持的font类型。[/b]
for (TInt i = iCurrentScrollNum; i
{
// Get the i-th font on the device.
iCoeEnv->ScreenDevice()->TypefaceSupport(*iTypefaceSupport, i);

// Get the font name.
fontName = iTypefaceSupport->iTypeface.iName.Des();

// Create font specification.
TFontSpec fontSpec(fontName, KFontSpecSize);
iDeviceMap->GetNearestFontInTwips(fontToUse, fontSpec);

// Increment baseline by two times height of font.
textPoint.iY = (fontToUse->HeightInPixels() * KBaseLineIncrementer);

// Draw text in font with graphics context.
gc.UseFont(fontToUse);
gc.DrawText(fontName, textPoint);
gc.DiscardFont();
iDeviceMap->ReleaseFont(fontToUse);
}

TFontSpec[/b]是与设备无关的字体规范(支持字高,样式),[/b]而CFont是与设备有关的字体。通过TZoomFactor的GetNearestFontInTwips(CFont*& aFont,const TFontSpec& aFontSpec);得到CFont。

注意:gc(图形上下文)是没有默认字体的,如果在调用文本绘图函数之前没有调用useFont(),将会导致严重的错误。

博主友情提示:

如您在评论中需要提及如QQ号、电子邮件地址或其他隐私敏感信息,欢迎使用>>博主专用加密工具v3<<处理后发布,原文只有博主可以看到。