Структура 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 имеет все эти биты с низким порядком очистки; Пропорциональный точечный шрифт задает бит TMPF_FIXED_PITCH. Шрифт устройства принтера Postscript задает TMPF_DEVICE, TMPF_VECTOR и TMPF_FIXED_PITCH битов.
Четыре бита высокого порядка tmPitchAndFamily назначить семейство шрифтов шрифта. Приложение может использовать значение 0xF0 и побитовый оператор AND для маскирования четырех низких битов
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 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
заголовка | wingdi.h (включая Windows.h) |
См. также
шрифтов и текста