Структура NEWTEXTMETRICA (wingdi.h)
Структура NEWTEXTMETRIC содержит данные, описывающие физический шрифт.
Синтаксис
typedef struct tagNEWTEXTMETRICA {
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;
DWORD ntmFlags;
UINT ntmSizeEM;
UINT ntmCellHeight;
UINT ntmAvgWidth;
} NEWTEXTMETRICA, *PNEWTEXTMETRICA, *NPNEWTEXTMETRICA, *LPNEWTEXTMETRICA;
Члены
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
Поле и семейство выбранного шрифта. Бит низкого порядка (бит 0) указывает шаг шрифта. Если оно равно 1, шрифт имеет переменную тональность (или пропорциональную). Если значение равно 0, шрифт имеет фиксированный шаг (или монопространство). Биты 1 и 2 указывают тип шрифта. Если оба бита равно 0, шрифт — это растровый шрифт; Если бит 1 равен 1 и бит 2 равен 0, шрифт является векторным шрифтом; Если бит 1 имеет значение 0 и бит 2, или если оба бита равны 1, шрифт является другим типом. Бит 3 равен 1, если шрифт является шрифтом устройства; в противном случае значение равно 0.
Четыре бита высокого порядка определяют семейство шрифтов. Элемент tmPitchAndFamily можно объединить с шестнадцатеричным значением 0xF0 с помощью побитового оператора AND и затем можно сравнить с именами семейств шрифтов для идентичного совпадения. Дополнительные сведения о семействах шрифтов см. в LOGFONT.
tmCharSet
Набор символов шрифта.
ntmFlags
Указывает, является ли шрифт курсивом, подчеркиванием, контуром, полужирным шрифтом и т. д. Может быть любое разумное сочетание следующих значений.
Бит | Имя | Значение |
---|---|---|
0 | NTM_ITALIC | курсив |
5 | NTM_BOLD | смелый |
8 | NTM_REGULAR | регулярный |
16 | NTM_NONNEGATIVE_AC | Глиф в шрифте любого размера не имеет отрицательного пробела A или C. |
17 | NTM_PS_OPENTYPE | Шрифт PostScript OpenType |
18 | NTM_TT_OPENTYPE | Шрифт TrueType OpenType |
19 | NTM_MULTIPLEMASTER | несколько главных шрифтов |
20 | NTM_TYPE1 | Шрифт типа 1 |
21 | NTM_DSIG | шрифт с цифровой подписью. Это обеспечивает возможность трассировки и гарантирует, что шрифт протестирован и не поврежден. |
ntmSizeEM
Размер квадрата em для шрифта. Это значение является нотальными единицами (то есть единицами, для которых был разработан шрифт).
ntmCellHeight
Высота шрифта (в единицах 100). Это значение следует сравнить со значением элемента ntmSizeEM.
ntmAvgWidth
Средняя ширина символов в шрифте( в единицах параметров). Это значение следует сравнить со значением элемента ntmSizeEM.
Замечания
Последние четыре члена структуры NEWTEXTMETRIC не включены в структуру TEXTMETRIC; во всех остальных отношениях структуры идентичны.
Размеры структуры NEWTEXTMETRIC обычно указываются в логических единицах; То есть они зависят от текущего режима сопоставления контекста отображения.
Заметка
Заголовок wingdi.h определяет NEWTEXTMETRIC в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
заголовка | wingdi.h (включая Windows.h) |
См. также
шрифтов и текста