windcao发表与:http://blog.youkuaiyun.com/windcao/archive/2007/09/05/1773637.aspx
先看看代码,由于标签的原有有些内容有误,
gc.DrawText(_L("SymbolFont /x671D/x5916/x5927/x8857"),TPoint(x,baseH));
被显示成了
gc.DrawText(_L("SymbolFont g1DY16Y2757"),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 g1DY16Y2757"),TPoint(x,baseH));
gc.DiscardFont();
myFont=LatinBold12();
gc.UseFont( myFont );
baseH+=myFont->HeightInPixels()+1;
//gc.DrawText(_L("LatinBold12 g1DY16Y2757"),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 g1DY16Y2757"),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 g1DY16Y2757"),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 g1DY16Y2757"),TPoint(x,baseH));
gc.DiscardFont();
myFont=LatinBold19();
gc.UseFont( myFont );
baseH+=myFont->HeightInPixels()+1;
gc.DrawText(_L("LatinBold19 g1DY16Y2757"),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 g1DY16Y2757"),TPoint(x,baseH));
gc.DiscardFont();
myFont=LatinClock14();
gc.UseFont( myFont );
baseH+=myFont->HeightInPixels()+1;
gc.DrawText(_L("LatinClock14 g1DY16Y2757"),TPoint(x,baseH));
gc.DiscardFont();
//---------------------中文字体
myFont=ApacPlain16();
gc.UseFont( myFont );
baseH+=myFont->HeightInPixels()+1;
// gc.DrawText(_L("ApacPlain16 g1DY16Y2757"),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 g1DY16Y2757"),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 g1DY16Y2757"),TPoint(x,baseH));
gc.DiscardFont();

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

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

myFont=CEikonEnv::Static()->DenseFont();
gc.UseFont( myFont );
baseH+=myFont->HeightInPixels()+1;
gc.DrawText(_L("DenseFont g1DY16Y2757"),TPoint(x,baseH));
gc.DiscardFont();
}
下面是各个版本的s60 平台上面模拟器的截图。
