捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
1 2017.07

LOGFONT 结构

点击次数:1300 更新时间:2017-7-1 21:00:15  【打印此页

原文链接 -> 传送门

LOGFONT 结构:

LOGFONT 结构定义了字体的属性。


结构原型:
 

typedef struct tagLOGFONT {
  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];
} LOGFONT, *PLOGFONT;



成员解析:
 

参数

含义

nHeight

1. 字体的字符单元或字符的逻辑单位高度。字符的高度值(也被称为 em 高度)是指字符单元高度值减去内部标头值。字体映射器以如下方式解释 nHeight 指定的值。

含义

> 0

字体映射器将这个值转换为设备单位,并和可用的字体的单元高度相匹配

0

字体映射器在选择匹配时用一个默认的高度值

< 0

字体映射器将这个值转换为设备单位,并将它的绝对值和可用的字体的字符高度相匹配


2. 比较所有的高度,字体映射器选择不超过要求大小的最大字体
3. 当字体第一次被使用时,出现此映射
4. 对于 MM_TEXT 映射模式,你可以用下面的公式为一种指定了点大小的字体确定高度:

1.  nHeight = -MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY), 72);

复制代码

nWidth

1. 所请求字体字符的逻辑单位的平均宽度
2. 如果此值为 0,那么字体映射器选择一个最匹配的值(最匹配的值是由比较当前设备长宽比与可使用字体的数字化长宽比之差的绝对值而确定的)

nEscapement

1. 偏移向量和设备 x 轴之间以十分之一度为单位的角度(偏移向量平行于正文行的基线)
2. 当图形模式设置为 GM_ADVANCED,可以不依赖字符串字符的方位角而指定字符串的移位角度
3. 当图形模式设置为 GM_COMPATIBLE 时,nEscapement 同时指定偏移角和方位角。你可以设置 nEscapement 和 nOrientation 为相同的值

nOrientation

每个字符的基线与设备 x 轴之间以十分之一度为单位的角度

fnWeight

1. 字体的权值(在 0 ~ 1000 之间)。例如 400 表示标准,700 表示粗体。如果此值为 0,则使用默认的权值
2. 为了便捷,系统定义了下面的值:

权值

FW_DONTCARE

0

FW_THIN

100

FW_EXTRALIGHT

200

FW_ULTRALIGHT

200

FW_LIGHT

300

FW_NORMAL

400

FW_REGULAR

400

FW_MEDIUM

500

FW_SEMIBOLD

600

FW_DEMIBOLD

600

FW_BOLD

700

FW_EXTRABOLD

800

FW_ULTRABOLD

800

FW_HEAVY

900

FW_BLACK

900

fdwItalic

如果设置为 TRUE,则字体设置为斜体

fdwUnderline

如果设置为 TRUE,则字体增加下划线

fdwStrikeOut

如果设置为 TRUE,则字体增加删除线

fdwCharSet

1. 字符集,预定义了下列值:
 

·         ANSI_CHARSET

·         BALTIC_CHARSET

·         CHINESEBIG5_CHARSET

·         DEFAULT_CHARSET

·         EASTEUROPE_CHARSET

·         GB2312_CHARSET

·         GREEK_CHARSET

·         HANGUL_CHARSET

·         MAC_CHARSET

·         OEM_CHARSET

·         RUSSIAN_CHARSET’

·         SHIFTJIS_CHARSET

·         SYMBOL_CHARSET

·         TURKISH_CHARSET

·         VIETNAMESE_CHARSET


2. 韩语版本的 Windows:
 

·         JOHAB_CHARSET


3. 中东语言版本的 Windows:
 

·         ARABIC_CHARSE

·         HEBREW_CHARSET


4. 泰国语言版本的 Windows:
 

·         THAI_CHARSET


5. OEM_CHARSET 值指定操作系统所依赖的字符集

6. 根据当前系统的区域设置 DEFAULT_CHARSET 的值。例如,当系统区域设置为 English(United States) 时,它被设置为 ANSI_CHARSET

7. 在操作系统中可能存在其他字符集的字体。如果应用程序使用未知字符集的字体,它不应该试图翻译或解释这个字体所渲染的字符串

8. 当创建字体时,为保证结果一致,不要设置 OEM_CHARSET 或 DEFAULT_CHARSET。如果你在 lpszFace 参数中指定了字体名称,需要确保 fdwCharSet 值与 lpszFace 中指定字体的字符集相匹配

fdwOutputPrecision

1. 输出精度。输出精度定义了输出必须在多大程度上与所请求的字体的高度,宽度,字符方向,旋转角度,间距和字体类型相匹配。它可以取下列值之一:

含义

OUT_CHARACTER_PRECIS

未使用

OUT_DEFAULT_PRECIS

默认字体映射器的行为

OUT_DEVICE_PRECIS

当系统里有多种字体使用同一个名称时,指示字体映射器选择一种设备字体

OUT_OUTLINE_PRECIS

此值指示字体映射器从 TrueType 和其它基于边框的字体中选择

OUT_PS_ONLY_PRECIS

指示字体映射器只能从 PostScript 字体中选择。如果系统上没有安装 PostScript 字体时,字体映射器返回默认行为

OUT_RASTER_PRECIS

当系统包含多个具有相同名称的字体时,指示字体映射器选择光栅字体

OUT_STRING_PRECIS

字体映射器不使用该值,但当光栅字被枚举时返回该值

OUT_STROKE_PRECIS

字体映射器不使用该值,但是当 TrueType ,其他基于边框的字体,和向量字体被枚举时,返回该值

OUT_TT_ONLY_PRECIS

指示字体映射器只能从 TrueType 字体中选择。如果系统上没有安装 TrueType 字体时,字体映射器返回默认行为

OUT_TT_PRECIS

当系统包含多个具有相同名称的字体时,指示字体映射器选择 TrueType 字体


2. 当操作系统含有多种与指定名字同名的字体时,应用程序可以使用 OUT_DEVICE_PRECIS, OUT_RASTER_PRECIS, OUT_TT_PRECIS 和 OUT_PS_ONLY_PRECIS 值来控制字体映射器如何选择一种字体。例如,如果操作系统含有名字为 Symbol 的光栅和 TrueType 两种字体,指定 OUT_TT_PRECIS 强制字体映射器选择 TrueType 版本。指定 OUT_TT_ONLY_PRECIS 强制字体映射器选择 TrueType 字体,尽管这必须给 TrueType 字体换一个名字

fdwClipPrecision

裁剪精度。裁剪精度定义如何裁剪部分超出裁剪区的字符,它可取一个或多个下列值:

含义

CLIP_CHARACTER_PRECIS

未使用

CLIP_DEFAULT_PRECIS

指定默认裁剪行为

CLIP_DFA_DISABLE

Windows XP SP1:关闭字体关联。注意这个标志并不保证会对 Windows Server 2003 以后的任何平台产生影响

CLIP_EMBEDDED

您必须指定此标志来使用嵌入式只读的字体

CLIP_LH_ANGLES

1. 当此值被使用时,所有字体的旋转取决于坐标系的方向是左旋还是右旋
2.如果未使用此值,设备字体总是逆时针方向旋转,但其他字体的旋转依赖于坐标系统的定向
3. 要获取更多关于坐标系统定向的信息,请参见 nOrientation 参数的描述

CLIP_MASK

未使用

CLIP_DFA_OVERRIDE

关闭字体关联。与 CLIP_DFA_DISABLE 相同,但是在一些情况下,可能会出现问题;建议使用 CLIP_DFA_DISABLE 标识

CLIP_STROKE_PRECIS

字体映射器不使用该值,当时但光栅,向量,或 TrueType 字体被枚举时,会返回该值。出于兼容性考虑,当枚举字体时,总是返回此值

CLIP_TT_ALWAYS

未使用

fdwQuality

1. 输出质量。输出质量定义 GDI 如何仔细地将逻辑字体属性与实际物理字体属性相匹配。它可取下列值之一:

含义

ANTIALIASED_QUALITY

如果字体支持并且字体的大小太小或太大,则字体是反锯齿,或平滑的

CLEARTYPE_QUALITY

如果设置,文本将使用 ClearType 反锯齿的方法被渲染(如果可能)

DEFAULT_QUALITY

字体的外观不重要

DRAFT_QUALITY

字体外观的重要性次于当使用 PROOF_QUALITY 时。对于 GDI 光栅字体,缩放是允许的,这意味着多种字体大小可以使用,但质量可能会低一些,如果有必要,粗体,斜体,下划线,带删除线的字体可以结合起来使用

NONANTIALIASED_QUALITY

字体永远不是抗锯齿的,即字体没有做平滑处理

PROOF_QUALITY

字符质量比精确匹配逻辑字体字体属性更重要。对于 GDI 扫描字体,缩放是允许的,并选择最接近的大小。尽管当使用 PROOF_QUALITY 时,选择的字体大小并可能没有被正确映射,但字体的质量很高,并没有外观上的变形。如果有必要,粗体,斜体,下划线,带删除线的字体可以结合起来使用


2. 如果输出质量为 DEFAULT_QUALITY, DRAFT_QUALITY 或  PROOF_QUALITY,那么如果 SPI_GETFONTSMOOTHING 系统参数是 TRUE,字体是反锯齿的。用户可以从控制面板控制这个系统参数。(控制面板的精确位置取决于 Windows 的版本,但是单词的大意是“屏幕字体的平滑边缘”)

fdwPitchAndFamily

1. 字体间距和字体族。低两位指定字体的字符间距,并且它可取下列值之一:
 

·         DEFAULT_PITCH

·         FIXED_PITCH

·         VARIABLE_PITCH


2. 高四位指定字体族,并且它可取下列值之一:

含义

FF_DECORATIVE

新颖字体,例如老式英语

FF_DONTCARE

使用默认字体

FF_MODERN

笔划宽度固定,有或者无衬线的字体。例如 Pica,Elite 和 Courier New

FF_ROMAN

笔划宽度变动,有衬线的字体。例如 MS Serif

FF_SCRIPT

设计成看上去像手写体的字体。例如 Script 和 Cursive

FF_SWISS

笔划宽度变动,无斜线的字体。例如 MS Sans Serif


3. 应用程序可以用布尔 OR 操作符将字符间距和字体族组合起来给 fdwPitchAndFamily 参数指定一个值

4. 字体族描述一种字体的普通外观。当请求的精确字体不可使用时,可用它们来指定字体

lpszFace

1. 以空结束的字符串的指针,并且这个字符串指定字体的字体名称。该字符串的长度不能超过 32 个字符,包括结尾空字符。EnumFontFamilies 函数可用来枚举所有当前可用字体的字体名称。更多信息,请参见备注部分
2. 如果 lpszFace 为 NULL 或是一个空字符串,GDI 使用能匹配其它属性的第一个字体



返回值:

1. 如果函数调用成功,返回值是逻辑字体的句柄;

2 .如果函数调用失败,返回值为 NULL。


备注:

下列情况下不支持 ClearType 抗锯齿:

 

·         打印机上渲染的文本。

·         256 色或更少颜色的显示设置。

·         向终端服务器客户端渲染的文本。

·         字体不是 TrueType 或 具有 TrueType 轮廓的 OpenType 字体。例如,下列的不支持  ClearType 抗锯齿:1号字体,不具有 TrueType 轮廓的 OpenType 字体,位图字体,向量字体,和设备字体。

·         字体已经调整为嵌入位图,仅包含嵌入的位图的字体大小。例如,这在东亚字体中经常出现。



需求:
 

Minimum supported client

Windows 2000 专业版 [仅桌面应用程序]

Minimum supported server

Windows 2000 服务器版 [仅桌面应用程序]

Header

Winuser.h (包含于 Windows.h)

Unicode and ANSI names

LOGFONTW (Unicode) 和 LOGFONTA (ANSI)

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1300 更新时间:2017-7-1 21:00:15  【打印此页

上一条:GetTextFace

下一条:CreatCaret

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修