Windows 注册表中的字体值是如何组织的?

Windows 注册表中的字体值是如何组织的?

这条评论https://superuser.com/a/1069328/1664175解释了有关 Windows 注册表的字体值的一些关键事实,但不完整。

我想了解更多有关字体值的信息。特别是第三行。这个值是什么意思?

在此处输入图片描述

答案1

字体值是从 C 结构派生的二进制字节流 LOGFONT 结构

该 C 结构的声明为:

typedef struct tagLOGFONTA {
  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;
  CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, *NPLOGFONTA, *LPLOGFONTA;

第三行从第17个字节开始,数一数就会发现,LONG类型是4个字节,BYTE是1个字节,CHAR类型是Unicode字符串。

在链接的文章中可以找到有关字段值的更多信息。

相关内容