LOGFONT

这个结构体定义了字体的属性。

struct LOGFONT {
	LONG lfHeight;
	LONG lfWidth 
	LONG lfEscapement;
	LONG lfOrientation;
	LONG lfWeight;
	BYTE lfItalic;
	BYTE lfUnderline;
	BYTE lfStrikeOut;
	BYTE lfCharSet;
	BYTE lfOutPrecision;
	BYTE lfClipPrecision;
	BYTE lfQuality;
	BYTE lfPitchAndFamily;
	TCHAR lfFaceName[LF_FACESIZE];
};

 

成员

lfHeight

指定高度(逻辑单位)。

lfWidth

指定字符的平均宽度(逻辑单位)。如果为 0,则比例自适应。

lfEscapement

字符串的书写角度,单位 0.1 度,默认为 0。

lfOrientation

每个字符的书写角度,单位 0.1 度,默认为 0。

lfWeight

字符的笔画粗细,范围 0~1000,0 表示默认粗细,使用数字或下表中定义的宏均可。

粗细值
FW_DONTCARE0
FW_THIN100
FW_EXTRALIGHT200
FW_ULTRALIGHT200
FW_LIGHT300
FW_NORMAL400
FW_REGULAR400
FW_MEDIUM500
FW_SEMIBOLD600
FW_DEMIBOLD600
FW_BOLD700
FW_EXTRABOLD800
FW_ULTRABOLD800
FW_HEAVY900
FW_BLACK900

lfItalic

指定字体是否是斜体。

lfUnderline

指定字体是否有下划线。

lfStrikeOut

指定字体是否有删除线。

lfCharSet

指定字符集。可以使用以下预定义的值:

  • ANSI_CHARSET
  • BALTIC_CHARSET
  • CHINESEBIG5_CHARSET
  • DEFAULT_CHARSET (字符集基于本地操作系统。例如,系统位置是 English (United States),字符集将设置为 ANSI_CHARSET)
  • EASTEUROPE_CHARSET
  • GB2312_CHARSET
  • GREEK_CHARSET
  • HANGUL_CHARSET
  • MAC_CHARSET
  • OEM_CHARSET (字符集依赖本地操作系统)
  • RUSSIAN_CHARSET
  • SHIFTJIS_CHARSET
  • SYMBOL_CHARSET
  • TURKISH_CHARSET

lfOutPrecision

指定文字的输出精度。输出精度定义输出与所请求的字体高度、宽度、字符方向、行距、间距和字体类型相匹配必须达到的匹配程度。可以是以下值:

含义
OUT_DEFAULT_PRECIS指定默认的映射行为。
OUT_DEVICE_PRECIS当系统包含多个名称相同的字体时,指定设备字体。
OUT_OUTLINE_PRECIS指定字体映射选择 TrueType 和其它的 outline-based 字体。
OUT_RASTER_PRECIS当系统包含多个名称相同的字体时,指定光栅字体(即点阵字体)。
OUT_STRING_PRECIS这个值并不能用于指定字体映射,只是指定点阵字体枚举数据。
OUT_STROKE_PRECIS这个值并不能用于指定字体映射,只是指定 TrueType 和其他的 outline-based 字体,以及矢量字体的枚举数据。
OUT_TT_ONLY_PRECIS指定字体映射只选择 TrueType 字体。如果系统中没有安装 TrueType 字体,将选择默认操作。
OUT_TT_PRECIS当系统包含多个名称相同的字体时,指定 TrueType 字体。

lfClipPrecision

指定文字的剪辑精度。剪辑精度定义如何剪辑字符的一部分位于剪辑区域之外的字符。可以是以下值:

含义
CLIP_DEFAULT_PRECIS指定默认的剪辑行为。
CLIP_STROKE_PRECIS这个值并不能用于指定字体映射,只是指定光栅(即点阵)、矢量或 TrueType 字体的枚举数据。
CLIP_EMBEDDED当使用内嵌的只读字体时,必须指定这个标志。
CLIP_LH_ANGLES如果指定了该值,所有字体的旋转都依赖于坐标系统的方向是逆时针或顺时针。
如果没有指定该值,设备字体始终逆时针旋转,但是其它字体的旋转依赖于坐标系统的方向。
该设置影响 lfOrientation 参数的效果。

lfQuality

指定文字的输出质量。输出质量定义图形设备界面 (GDI) 必须尝试将逻辑字体属性与实际物理字体的字体属性进行匹配的仔细程度。可以是以下值:

含义
ANTIALIASED_QUALITY指定输出质量是抗锯齿的(如果字体支持)。
DEFAULT_QUALITY指定输出质量不重要。
DRAFT_QUALITY草稿质量。字体的显示质量是不重要的。对于光栅字体(即点阵字体),缩放是有效的,这就意味着可以使用更多的尺寸,但是显示质量并不高。如果需要,粗体、斜体、下划线和删除线字体会被合成。
NONANTIALIASED_QUALITY指定输出质量不是抗锯齿的。
PROOF_QUALITY正稿质量。指定字体质量比匹配字体属性更重要。对于光栅字体(即点阵字体),缩放是无效的,会选用其最接近的字体大小。虽然选中 PROOF_QUALITY 时字体大小不能精确地映射,但是输出质量很高,并且不会有畸变现象。如果需要,粗体、斜体、下划线和删除线字体会被合成。

如果 ANTIALIASED_QUALITY 和 NONANTIALIASED_QUALITY 都未被选择,抗锯齿效果将依赖于控制面板中字体抗锯齿的设置。

lfPitchAndFamily

指定以常规方式描述字体的字体系列。字体系列描述大致的字体外观。字体系列用于在所需精确字体不可用时指定字体。1~2 位指定字体间距,可以是以下值:

含义
DEFAULT_PITCH指定默认间距。
FIXED_PITCH指定固定间距。
VARIABLE_PITCH指定可变间距。

4~7 位指定字体系列,可以是以下值:

含义
FF_DECORATIVE指定特殊字体。例如 Old English。
FF_DONTCARE指定字体系列不重要。
FF_MODERN指定具有或不具有衬线的等宽字体。例如,Pica、Elite 和 Courier New 都是等宽字体。
FF_ROMAN指定具有衬线的等比字体。例如 MS Serif。
FF_SCRIPT指定设计为类似手写体的字体。例如 Script 和 Cursive。
FF_SWISS指定不具有衬线的等比字体。例如 MS Sans Serif。

字体间距和字体系列可以用布尔运算符 OR 连接(即符号 |)。

lfFaceName

字体名称,名称不得超过 31 个字符。如果是空字符串,系统将使用第一个满足其它属性的字体。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值