symbian字体使用方法汇总

windcao发表与:http://blog.csdn.net/windcao/archive/2007/09/05/1773637.aspx

先看看代码,由于标签的原有有些内容有误,
 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*/  )  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=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 平台上面模拟器的截图。

猜你喜欢

转载自blog.csdn.net/windcao/article/details/1773637