Структура 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
- JOHAB_CHARSET
- ARABIC_CHARSET
- HEBREW_CHARSET
- THAI_CHARSET
Комментарии
Примечание
Заголовок wingdi.h определяет TEXTMETRIC как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | wingdi.h (включая Windows.h) |