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;

FontFamily 和Font 的区别的更多相关文章

  1. font-family与font-face的区别

    font-family:指定字体 设置后,电脑上无该字体时,观看网页不能显示该字体效果, 针对中文版操作系统,为保证网页效果,通常只指定:宋体.黑体.微软雅黑等系统上默认自带的字体. font-fac ...

  2. 如何在HTML5 Canvas 里面显示 Font Awesome 图标

        Font Awesome 是一套完美的图标字体,主要目的是和 Bootstrap 搭配使用. 提供的CSS 已经可以完美显示这些图标在网页里面.最新的版本4.3 里面,已经提供519 Icon ...

  3. CSS魔法堂:再次认识font

    一.前言 文字承载着站点内涵,而良好的字体.排版则为用户提供舒适的阅读体验.本文打算对字体稍微深入一下子网页字体的内容,若有纰漏请大家指正,谢谢! 目录一坨: 二, 字体分类 1. 衬线体(Serif ...

  4. css常用样式font控制字体的多种变换

    CSS 字体属性定义文本的字体系列.大小.加粗.风格(如斜体)和变形(如小型大写字母)font-family控制字体,由于各个电脑系统安装的字体不尽相同,但是基本装有黑体.宋体与微软雅黑这三款字体,通 ...

  5. 字体:等宽字体与比例字体 - Monospaced font & Proportional font

    字体:等宽字体与比例字体 - Monospaced font & Proportional font 量子波儿 2013-08-24 16:54:12 7101 收藏 1分类专栏: 计算机常识 ...

  6. 十天精通CSS3学习笔记 part1

    http://www.imooc.com/learn/33 第1章 初识CSS3 什么是CSS3? CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能. 目前主 ...

  7. 第 15 章 CSS 文本样式[上]

    学习要点: 1.字体总汇 2.字体设置 3.Web 字体 主讲教师:李炎恢 本章主要探讨 HTML5 中 CSS 文本样式,通过文本样式的设置,更改字体的大小.样式以及文本的方位. 一.字体总汇 本节 ...

  8. DIV+CSS+JS基础+正则表达式

    ...............HTML系列....................        DIV元素是用来为HTML文档内大块(block-level)的内容提供结构和背景的元素.DIV的起始 ...

  9. 5.css字体

    下面的用一个表格总结了文本样式中字体的一些设置方法: 属性名 说明 CSS 版本 font-size 设置字体的大小 1 font-variant 设置英文字体是否转换为小型大写 1 font-sty ...

随机推荐

  1. HttpClient异常处理手册

    HttpClient异常处理手册 开源中国 发表于 2014-08-26 19:44:06 异常处理 HttpClient的使用者在执行HTPP方法(GET,PUT,DELETE等),可能遇到会两种主 ...

  2. vue 项目 多选 问题

    近期 vue 项目用到多选功能,引用的elementUI的级联多选 Cascader,但是没有效果. 后来发现是elementUI版本问题,我们项目用的是2.7.2版本,版本太低. 后来 卸载了 重新 ...

  3. NOIp2018集训test-10-20 (bike day6)

    B 君的第一题 lanzhou $x^{\frac{p-1}{2}}\equiv 1(mod\ p)$ $x\equiv x*x^{\frac{p-1}{2}} (mod\ p)$ $x\equiv ...

  4. (转)OpenFire源码学习之十一:连接管理(下)

    转:http://blog.csdn.net/huwenfeng_2011/article/details/43416523 下面是下部分 C2S 1.当有客户端进行连接时根据Mina框架的模式首先调 ...

  5. MySql命令行无法显示中文

    好烦遇到了,遇到MySql命令行无法显示中文问题????? show variables like 'char%';//显示字符集 set names utf8;//设置字符集 describer t ...

  6. git clone慢的解决办法

    转自:http://www.kindemh.cn/ 转自Kindem的博客 问题 大家可能都遇到过从github使用git clone指令奇慢无比的问题,网上很多人说使用代理来加速git,但是这也不是 ...

  7. font的基本知识

    字体 你无法预料到用户是否可以访问样式表里定义的字体.所以在设置字体时,在属性后指定一个替代的字体列表是个不错的主意. 在这个字体列表的最后加上系统字体中的一个,如:serif,sans-serif, ...

  8. 【转】Linux系统抓包命令tcpdump使用实例

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式tcpdump的参数众多,通过man tcpdump可 ...

  9. MyBatis-Spring(二)--SqlSessionTemplate实现增删改查

    SqlSessionTemplate是个线称安全的类,每运行一个SqlSessionTemplate时,它就会重新获取一个新的SqlSession,所以每个方法都有一个独立的SqlSession,这意 ...

  10. ES6_Demo,模拟后台json数据展示

    最近在学习ES6,下面,模拟后台传过来json数据,并在页面展示的一个小Demo. 页面简单的不可描述,只有一个button按钮 <button>点击获取json数据</button ...