Структура 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
Указывает, является ли шрифт курсивным, подчеркнутым, контурным, полужирным и т. д. Может быть любым разумным сочетанием следующих значений.
bit | Имя | Значение |
---|---|---|
0 | NTM_ITALIC | курсив |
5 | NTM_BOLD | полужирный |
8 | NTM_REGULAR | обычный |
16 | NTM_NONNEGATIVE_AC | ни один глиф в шрифте любого размера не имеет отрицательного пробела A или C. |
17 | NTM_PS_OPENTYPE | Шрифт OpenType Для PostScript |
18 | NTM_TT_OPENTYPE | Шрифт OpenType TrueType |
19 | NTM_MULTIPLEMASTER | несколько шрифтов master |
20 | NTM_TYPE1 | Введите шрифт 1 |
21 | NTM_DSIG | шрифт с цифровой подписью. Это обеспечивает возможность трассировки и гарантирует, что шрифт был протестирован и не поврежден. |
ntmSizeEM
Размер квадрата em для шрифта. Это значение имеет значение в единицах (то есть единицах, для которых был разработан шрифт).
ntmCellHeight
Высота шрифта (в нотальных единицах). Это значение следует сравнить со значением элемента ntmSizeEM .
ntmAvgWidth
Средняя ширина символов в шрифте в условных единицах. Это значение следует сравнить со значением элемента ntmSizeEM .
Комментарии
Последние четыре элемента структуры NEWTEXTMETRIC не включаются в структуру TEXTMETRIC ; во всех остальных отношениях структуры идентичны.
Размеры в структуре NEWTEXTMETRIC обычно указываются в логических единицах; то есть они зависят от текущего режима сопоставления контекста отображения.
Примечание
Заголовок wingdi.h определяет NEWTEXTMETRIC как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | wingdi.h (включая Windows.h) |