Структура TEXTMETRICW (wingdi.h)

Структура TEXTMETRIC содержит основные сведения о физическом шрифте. Все размеры указываются в логических единицах; то есть они зависят от текущего режима сопоставления контекста отображения.

Синтаксис

typedef struct tagTEXTMETRICW {
  LONG  tmHeight;
  LONG  tmAscent;
  LONG  tmDescent;
  LONG  tmInternalLeading;
  LONG  tmExternalLeading;
  LONG  tmAveCharWidth;
  LONG  tmMaxCharWidth;
  LONG  tmWeight;
  LONG  tmOverhang;
  LONG  tmDigitizedAspectX;
  LONG  tmDigitizedAspectY;
  WCHAR tmFirstChar;
  WCHAR tmLastChar;
  WCHAR tmDefaultChar;
  WCHAR tmBreakChar;
  BYTE  tmItalic;
  BYTE  tmUnderlined;
  BYTE  tmStruckOut;
  BYTE  tmPitchAndFamily;
  BYTE  tmCharSet;
} TEXTMETRICW, *PTEXTMETRICW, *NPTEXTMETRICW, *LPTEXTMETRICW;

Члены

tmHeight

Высота (подъем + спуск) символов.

tmAscent

Восхождение (единицы над базовой линией) символов.

tmDescent

Спуск (единицы ниже базовой линии) символов.

tmInternalLeading

Объем начального (пробела) внутри границ, установленных элементом tmHeight . В этой области могут встречаться диакритические знаки и другие диакритические знаки. Конструктор может задать для этого элемента нулевое значение.

tmExternalLeading

Объем дополнительного начального (пробела), который приложение добавляет между строками. Так как эта область находится за пределами шрифта, она не содержит меток и не изменяется вызовами вывода текста в режиме OPAQUE или TRANSPARENT. Конструктор может задать для этого элемента нулевое значение.

tmAveCharWidth

Средняя ширина символов в шрифте (обычно определяется как ширина буквы x ). Это значение не включает навес, необходимый для полужирных или курсивных символов.

tmMaxCharWidth

Ширина самого широкого символа в шрифте.

tmWeight

Вес шрифта.

tmOverhang

Дополнительная ширина в строке, которая может быть добавлена к некоторым созданным шрифтам. При синтезе некоторых атрибутов, например полужирного или курсивного, интерфейсу графического устройства (GDI) или устройству может потребоваться добавить ширину строки как для каждого символа, так и для каждой строки. Например, GDI делает строку полужирной, расширяя интервал между символами и перестрогая на значение смещения; курсивизирует шрифт путем сдвига строки. В обоих случаях за базовой строкой есть свес. Для полужирных строк свес — это расстояние смещения превышения. Для строк курсивом свес — это величина, в которую верхняя часть шрифта сдвигается за нижнюю часть шрифта.

Член tmOverhang позволяет приложению определить, какая часть ширины символа, возвращаемая вызовом функции GetTextExtentPoint32 для одного символа, является фактической шириной символа, а сколько — дополнительной шириной строки. Фактическая ширина равна экстенту за вычетом свеса.

tmDigitizedAspectX

Горизонтальный аспект устройства, для которого предназначен этот шрифт.

tmDigitizedAspectY

Вертикальный аспект устройства, для которого предназначен этот шрифт. Соотношение элементов tmDigitizedAspectX и tmDigitizedAspectY — это пропорции устройства, для которого был разработан шрифт.

tmFirstChar

Значение первого символа, определенного в шрифте.

tmLastChar

Значение последнего символа, определенного в шрифте.

tmDefaultChar

Значение символа, заменяемого символами, не используемыми в шрифте.

tmBreakChar

Значение символа, которое будет использоваться для определения разрывов слов для обоснования текста.

tmItalic

Указывает курсивный шрифт, если он не является нулевым.

tmUnderlined

Указывает подчеркнутый шрифт, если он не является нулевым.

tmStruckOut

Зачеркивный шрифт, если он не имеет нуля.

tmPitchAndFamily

Указывает сведения о шаге, технологии и семействе физического шрифта.

Четыре бита нижнего порядка этого элемента указывают сведения о шаге и технологии шрифта. Константы определяются для каждого из четырех битов.

Константа Значение
TMPF_FIXED_PITCH Если этот бит задан, шрифт является шрифтом с переменным шагом. Если этот бит является прозрачным, шрифт является шрифтом фиксированного тона. Обратите внимание, что эти значения противоположны тому, что подразумевается в названии константы.
TMPF_VECTOR Если этот бит задан, шрифт является векторным.
TMPF_TRUETYPE Если этот бит задан, шрифт будет шрифтом TrueType.
TMPF_DEVICE Если этот бит задан, шрифт будет шрифтом устройства.
 

Приложение должно тщательно проверять качества, закодированные в этих битах низкого порядка, не делая произвольных предположений. Например, помимо собственных битов, шрифты TrueType и PostScript задают бит TMPF_VECTOR. Шрифт монопространствого растрового рисунка содержит все эти биты низкого порядка. Пропорциональное растровое изображение задает бит TMPF_FIXED_PITCH. Шрифт принтера Postscript задает биты TMPF_DEVICE, TMPF_VECTOR и TMPF_FIXED_PITCH.

Четыре бита высокого порядка tmPitchAndFamily обозначают семейство шрифтов. Приложение может использовать значение 0xF0 и побитовый оператор AND для маскирования четырех битов низкого порядка tmPitchAndFamily, получая таким образом значение, которое можно напрямую сравнить с именами семейств шрифтов, чтобы найти идентичное совпадение. Сведения о семействах шрифтов см. в описании структуры LOGFONT .

tmCharSet

Набор символов шрифта. Набор символов может иметь одно из следующих значений.

  • 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
Выпуск Windows на корейском языке:
  • JOHAB_CHARSET
Выпуск Windows для ближневосточных языков:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
Выпуск Windows на тайском языке:
  • THAI_CHARSET

Комментарии

Примечание

Заголовок wingdi.h определяет TEXTMETRIC как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть wingdi.h (включая Windows.h)

См. также раздел

Структуры шрифта и текста

Общие сведения о шрифтах и тексте

GetTextExtentPoint32

GetTextMetrics

LOGFONT