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