我們來自五湖四海,不為別的,只因有共同的愛好,為中國互聯網發展出一分力!

FontFamily 和Font 的區別

2012年07月03日19:07 閱讀: 3343 次

標簽: 字體, 區別, FontFamily, Font, 字形, 字樣

GDI+ 將字樣相同但字形不同的字體分組為字體系列。例如,下面是同一個字樣(Arial),不同的字形 :

-------------------------------------------------------- 

Arial Regular 常規

Arial Bold 粗體

Arial Italic 斜體

Arial Bold Italic 粗斜體

-------------------------------------------------

GDI+ 使用四種字形形成字體系列:常規、粗體、傾斜和粗斜體。像 narrow 和 rounded 之類的形容詞不被視為字形;而是作為字體系列名的一部分。如下,Arial,Arial Black,Arial Narrow 是三個不同的字樣:

--------------------------------------------------------

Arial 

Arial Black

Arial Narrow


------------------------------------------------- 

在GDI+中,字樣+字形+字號+單位構成了“字體”,在使用 GDI+ 繪制文本之前,您需要構造一個 FontFamily 對象(指定字樣)和一個 Font (“字體”)對象。FontFamily 對象指定字樣(例如 Arial,宋體,),而 Font 對象指定字號、字形和單位。

示例
下面的示例構造一個字號為 48,以像素為單位、字形為“粗斜體”、字樣為“宋體”的字體。在下面的代碼中,傳遞給 Font 構造函數的第一個參數是 FontFamily 對象。第二個參數指定字體的大小,第三個參數確定字形,其單位由第四個參數確定(可以指定以像素,點...為單位)。

Pixel 為 GraphicsUnit 枚舉的一個成員,Regular 是 FontStyle 枚舉的一個成員。



uses
  GDIPAPI,GDIPOBJ;
procedure TForm1.FormPaint(Sender: TObject);
var
  g:TGPGraphics;
  font:TGPFont;
  fontfamily:TGPFontFamily;
  sb:TGPSolidBrush;
begin
  g:=TGPGraphics.Create(Canvas.Handle);
  fontfamily:=TGPFontFamily.Create('宋體');   //建立“字樣”對象
  font:=TGPFont.Create(fontfamily,16,FontStyleBoldItalic,UnitPixel); //建立“字體”對象
  sb:=TGPSolidBrush.Create(aclRed);
  g.DrawString('小侃',-1,font,MakePoint(20.0,10.0),sb);
 
  sb.free;
  font.free;
  fontfamily.free;
  g.free;
end;



分享到: 更多
藍客門戶
©2001-2019 中國藍客聯盟 版權所有.
關于藍客聯盟歷史宗旨章程技術服務聯系我們藍客社區

女校剑道部闯关