Series 60 3rd上绘图时设置字体的大小

通常我们在绘制文字时都是使用CEikonEnv提供的NormalFont(),AnnotationFont(),TitleFont()等字体,有的情况需要调整字体的大小,下面的代码演示了如何设置字体大小的方法:

void  CEditorList3Col::Draw(const TRect& aRect) const
{
CWindowGc& gc = SystemGc();

gc.Clear( aRect );

CFont *font = NULL;
//获取字体信息
TFontSpec fontSpec = iEikonEnv->LegendFont()->FontSpecInTwips();
  fontSpec.iHeight  -= fontSpec.iHeight / 6;   //更改字体大小

iCoeEnv->ScreenDevice()->GetNearestFontInTwips( font, fontSpec );  //根据设置的字体信息获取合适的字体
gc.UseFont( font );

//Draw text operation
..................................

gc.DiscardFont();
iCoeEnv->ScreenDevice()->ReleaseFont( font );  //记住要调用ReleaseFont()释放字体资源.
}

说明:
由于Series60 3rd上与2nd上使用的字体形式可能不同,上面的代码可能在Series60 2nd上没有效果.

Vincent 发表于 2008-7-13 18:31

原帖来自[url]http://blog.csdn.net/Beover1984/archive/2007/08/02/1722513.aspx[/url]

 

第二版改变字体方法
    CWindowGc& gc = SystemGc();
    
    gc.SetPenStyle( CGraphicsContext::ENullPen );
    gc.SetBrushColor( KRgbWhite );
    gc.SetBrushStyle( CGraphicsContext::ESolidBrush );
    gc.DrawRect( aRect );

    //change EAknLogicalFontPrimaryFont
    const CFont* font = AknLayoutUtils::FontFromId(EAknLogicalFontPrimaryFont);
        gc.UseFont(font);
        TInt lineHeight = font->HeightInPixels()+1;
        _LIT(KAboutString1, "Liberty Enabled Address Book.");
        const TInt col = 5;
        gc.DrawText(KAboutString1, TPoint(col, lineHeight));
        gc.DiscardFont();
        
        font = AknLayoutUtils::FontFromId(EAknLogicalFontTitleFont);
        gc.UseFont(font);
        lineHeight = font->HeightInPixels()+1;
        _LIT(KAboutString2, "Liberty Enabled Address Book.");
        const TInt col2 = 5;
        gc.DrawText(KAboutString2, TPoint(col2, lineHeight*2));
        gc.DiscardFont();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值