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;

最新文章

  1. redis-desktop-manager
  2. JS实现Ajax---例:获取服务器时间
  3. ME23N PO 打印预览 打印问题
  4. Java —— 时区(夏令时)问题
  5. WebStorm2018破解
  6. Python初识+条件语句+循环语句
  7. .net后台防止API接口被重复请求
  8. 自主学习python文本进度条及π的计算
  9. Eclipse工具:常用快捷键记录
  10. mysql从入门到精通
  11. 【Android】setHapticFeedbackEnabled 设置
  12. bug4 导入新工程时报 Target runtime com.genuitec.runtime.generic.jee60 is not defined
  13. 为什么mysqlbinlog --database选项不起作用
  14. 启动spark集群
  15. C++ 表示一个区间值得方法
  16. Linux 命令find、grep
  17. Android Studio怎样查看资源或者函数在哪些类中被引用
  18. flume MemoryChannel 源代码解析
  19. 协程-遇到I/O自动切换
  20. 【转】arm和x86的区别

热门文章

  1. git常用操作命令归纳
  2. 开启.NET Core 3时代,DevExpress v19.2.5带你全新启航
  3. 思维——cf1178E
  4. 数学思维——cf351A
  5. docker安装(4)
  6. Java桌球小游戏
  7. (13)centos7 任务计划
  8. python re 正則匹配規則
  9. 提升R代码运算效率的11个实用方法
  10. UDP 两种丢包处理策略:丢包重传(ARQ) 和 前向纠错(FEC)