Структура LOGFONT

Type LOGFONT
  lfHeight As Long
  lfWidth As Long
  lfEscapement As Long
  lfOrientation As Long
  lfWeight As Long
  lfItalic As Byte
  lfUnderline As Byte
  lfStrikeOut As Byte
  lfCharSet As Byte
  lfOutPrecision As Byte
  lfClipPrecision As Byte
  lfQuality As Byte
  lfPitchAndFamily As Byte
  lfFaceName As String * 32
End Type

Структура LOGFONT содержит информацию о шрифтах

Состав структуры

lfHeight
Высота шрифта в логических единицах
lfWidth
Ширина шрифта в логических единицах
lfEscapement
Угол нанесения текста – угол между базовой линией текста и горизонталью (десятые доли градуса)
lfOrientation
Наклон символов (десятые доли градуса)
lfWeight
Толщина линий начертания шрифта (“жирность”)
FW_DONTCARE = 0
Default weight.
FW_THIN = 100
Thin weight.
FW_EXTRALIGHT = 200
Extra-light weight.
FW_ULTRALIGHT = 200
Аналогично FW_EXTRALIGHT.
FW_LIGHT = 300
Light weight.
FW_NORMAL = 400
Normal weight.
FW_REGULAR = 400
Аналогично FW_NORMAL.
FW_MEDIUM = 500
Medium weight.
FW_SEMIBOLD = 600
Semi-bold weight.
FW_DEMIBOLD = 600
Аналогично FW_SEMIBOLD.
FW_BOLD = 700
Bold weight.
FW_EXTRABOLD = 800
Extra-bold weight.
FW_ULTRABOLD = 800
Аналогично FW_EXTRABOLD.
FW_HEAVY = 900
Heavy weight.
FW_BLACK = 900
Аналогично FW_HEAVY.
lfItalic
Ненулевое значение означает курсив
lfUnderline
Ненулевое значение означает подчеркивание
lfStrikeOut
Ненулевое значение означает перечеркнутый шрифт
lfCharSet
Номер набора символов шрифта – таблицы кодировок
ANSI_CHARSET = 0
Кодировка Windows
ARABIC_CHARSET = 178
Windows NT/2000: Arabic character set.
BALTIC_CHARSET = 186
Windows 95/98: Baltic character set.
CHINESEBIG5_CHARSET = 136
Chinese Big 5 character set
DEFAULT_CHARSET = 1
Кодировка по умолчанию
EASTEUROPE_CHARSET = 238
Windows 95/98: Eastern European character set.
GB2312_CHARSET = 124
GB2312 character set.
GREEK_CHARSET = 161
Windows 95/98: Greek character set.
HANGEUL_CHARSET = 129
HANDEUL character set.
HEBREW_CHARSET = 177
Windows NT/2000: Hebrew character set.
JOHAB_CHARSET = 130
Windows 95/98: Johab character set.
MAC_CHARSET = 77
Windows 95, 98: Mac character set.
OEM_CHARSET = 255
Original equipment manufacturer (OEM) character set.
RUSSIAN_CHARSET = 204
Windows 95/98: Русская кодировка
SHIFTJIS_CHARSET = 128
ShiftJis character set
SYMBOL_CHARSET = 2
Символьная кодировка
THAI_CHARSET = 222
Windows NT/2000: Thai character set
TURKISH_CHARSET = 162
Windows 95/98: Turkish character set
lfOutPrecision
Параметр, определяющий соответствие запрашиваемого шрифта и имеющегося в наличии
OUT_DEFAULT_PRECIS = 0
The default font mapping behavior.
OUT_DEVICE_PRECIS = 5
Choose a device font if there are multiple fonts in the system with the same name.
OUT_OUTLINE_PRECIS = 8
Windows NT, 2000: Choose a TrueType or other outline-based font.
OUT_RASTER_PRECIS = 6
Choose a raster font if there are multiple fonts in the system with the same name.
OUT_STRING_PRECIS = 1
Raster font (used for enumeration only).
OUT_STROKE_PRECIS = 3
Windows 95/98: Vector font (used for enumeration only). Windows NT/ 2000: TrueType, outline-based, or vector font (used for enumeration only).
OUT_TT_ONLY_PRECIS = 7
Только шрифты TrueType
OUT_TT_PRECIS = 4
Choose a TrueType font if there are multiple fonts in the system with the same name.
lfClipPrecision
Параметр, определяющий способ “обрезания” изображения литер при их выходе за пределы области ограниченного вывода
CLIP_DEFAULT_PRECIS = 0
The default clipping behavior.
CLIP_EMBEDDED = 128
This flag must be set for an embedded read-only font.
CLIP_LH_ANGLES = 16
The direction of any rotations is determined by the coordinate system (or else all rotations are counterclockwise).
CLIP_STROKE_PRECIS = 2
Raster, vector, or TrueType font (used for enumeration only).
lfQuality
Качество воспроизведения шрифта
ANTIALIASED_QUALITY = 4
Windows 95/98/NT 4.0 или выше/2000: The font is always antialiased if possible.
DEFAULT_QUALITY = 0
По умолчанию. Качесто не существенно
DRAFT_QUALITY = 1
Шрифт чернового качества
NONANTIALIASED_QUALITY = 3
Windows 95/98/NT 4.0 или выше/2000: The font is never antialiased.
PROOF_QUALITY = 2
Шрифт чистового качества
lfPitchAndFamily
Это поле определяет, будет ли шрифт иметь фиксированную или переменную ширину литер, а также семейство, к которому принадлежит шрифт
DEFAULT_PITCH = 0
По умолчанию
FIXED_PITCH = 1
Моноширный шрифт
VARIABLE_PITCH = 2
Пропорциональный шрифт
FF_DECORATIVE = 80
Showy, decorative font face.
FF_DONTCARE = 0
Do not care about the font face.
FF_MODERN
Modern font face (monospaced, sans serif font).
FF_ROMAN =16
Roman font face (proportional-width, serif font).
FF_SCRIPT = 64
Script font face which imitates script handwriting.
FF_SWISS = 32
Swiss font face (proportional-width, sans serif font).
lfFaceName
Имя шрифта с завершающим нулевым символом

Используется в:

CHOOSEFONT_TYPE, CreateFontIndirect, EnumFontFamiliesEx, ENUMLOGFONT, ENUMLOGFONTEX, ICONMETRICS, NONCLIENTMETRICS, SystemParametersInfo