Структура NEWTEXTMETRICW (wingdi.h)
Структура NEWTEXTMETRIC содержит данные, описывающие физический шрифт.
Синтаксис
typedef struct tagNEWTEXTMETRICW {
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;
DWORD ntmFlags;
UINT ntmSizeEM;
UINT ntmCellHeight;
UINT ntmAvgWidth;
} NEWTEXTMETRICW, *PNEWTEXTMETRICW, *NPNEWTEXTMETRICW, *LPNEWTEXTMETRICW;
Члены
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 | Шрифт PostScript OpenType |
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) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по