symbian字体使用方法汇总

本文介绍了S60平台中如何使用不同类型的字体进行文本绘制,包括固定大小和固定比例的字体,并展示了在不同版本S60平台模拟器上的效果。
作者:算-法无极    文章来源:blog.csdn.net/windcao 

先看看代码,由于标签的原有有些内容有误,
 gc.DrawText(_L("SymbolFont /x671D/x5916/x5927/x8857"),TPoint(x,baseH));
被显示成了    gc.DrawText(_L("SymbolFont g1DY16Y27ˆ57"),TPoint(x,baseH));
实际上/x671D/x5916/x5927/x8857是汉字 朝外大街。

获取固定大小的字体:

void  CTestView::Draw(  const  TRect &   /*aRect*/  )  cons
    
{
                    
// Get the standard graphics context
                    CWindowGc& gc = SystemGc();

                    
// Gets the control's extent
                    TRect drawRect( Rect());

                    
// Clears the screen
                     gc.Clear( drawRect );
    
                     TInt baseH
=0;
    TInt incH
=10;
    TInt x
=0;
    
const CFont* myFont=NULL;                     
//--------------------------拉丁字体
                     myFont=LatinPlain12();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"LatinPlain12 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();
    
    myFont
=LatinBold12();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    
//gc.DrawText(_L("LatinBold12 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DrawText(_L("LatinBold12"),TPoint(x,baseH));
    gc.DiscardFont();
    
    myFont
=LatinBold13();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    
//gc.DrawText(_L("LatinBold13 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DrawText(_L("LatinBold13"),TPoint(x,baseH));
    gc.DiscardFont();
    
    myFont
=LatinBold16();    
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    
//gc.DrawText(_L("LatinBold16 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DrawText(_L("LatinBold16"),TPoint(x,baseH));
    gc.DiscardFont();    
    
    myFont
=LatinBold17();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"LatinBold17 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();
    
    myFont
=LatinBold19();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"LatinBold19 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();
    
    myFont
=NumberPlain5();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"1234567890"),TPoint(x,baseH));
    gc.DiscardFont();
    
    myFont
=ClockBold30();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"ClockBold30 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();
    
    myFont
=LatinClock14();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"LatinClock14 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();
    
//---------------------中文字体
    myFont=ApacPlain16();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
//    gc.DrawText(_L("ApacPlain16 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DrawText(_L("ApacPlain16"),TPoint(x,baseH));
    gc.DiscardFont();

    myFont
=ApacPlain12();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
//    gc.DrawText(_L("ApacPlain12 g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DrawText(_L("ApacPlain12"),TPoint(x,baseH));
    gc.DiscardFont();
      }
获取固定比例的字体。
void  CTest2View::Draw(  const  TRect &   /*aRect*/  )  const
    
{
    
// Get the standard graphics context
    CWindowGc& gc = SystemGc();

    
// Gets the control's extent
    TRect drawRect( Rect());

    
// Clears the screen
    gc.Clear( drawRect );
    
    TInt baseH
=0;
    TInt incH
=10;
    TInt x
=0;
    
const CFont* myFont=NULL;

    myFont
=CEikonEnv::Static()->TitleFont();
    gc.UseFont( myFont );    
    baseH
+=myFont->HeightInPixels() +1;
    gc.DrawText(_L(
"TitleFont g1DY16"),TPoint(x,baseH));
    gc.DiscardFont();


    myFont
=CEikonEnv::Static()->NormalFont();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"NormalFont g1DY16Y27"),TPoint(x,baseH));
    gc.DiscardFont();

    myFont
=CEikonEnv::Static()->AnnotationFont();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"AnnotationFont g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();

    myFont
=CEikonEnv::Static()->LegendFont();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"LegendFont g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();

    myFont
=CEikonEnv::Static()->SymbolFont();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"SymbolFont g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();

    myFont
=CEikonEnv::Static()->DenseFont();
    gc.UseFont( myFont );
    baseH
+=myFont->HeightInPixels()+1;
    gc.DrawText(_L(
"DenseFont g1DY16Y27ˆ57"),TPoint(x,baseH));
    gc.DiscardFont();
}

下面是各个版本的s60 平台上面模拟器的截图。

 
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值