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