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

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

Синтаксис

typedef struct tagTEXTMETRICA {
  LONG tmHeight;
  LONG tmAscent;
  LONG tmDescent;
  LONG tmInternalLeading;
  LONG tmExternalLeading;
  LONG tmAveCharWidth;
  LONG tmMaxCharWidth;
  LONG tmWeight;
  LONG tmOverhang;
  LONG tmDigitizedAspectX;
  LONG tmDigitizedAspectY;
  BYTE tmFirstChar;
  BYTE tmLastChar;
  BYTE tmDefaultChar;
  BYTE tmBreakChar;
  BYTE tmItalic;
  BYTE tmUnderlined;
  BYTE tmStruckOut;
  BYTE tmPitchAndFamily;
  BYTE tmCharSet;
} TEXTMETRICA, *PTEXTMETRICA, *NPTEXTMETRICA, *LPTEXTMETRICA;

Члены

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 бит. Шрифт monospace bitmap содержит все эти биты нижнего порядка. Пропорциональное растровое изображение задает бит 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