Поделиться через


Структура 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)

См. также раздел

EnumFontFamilies

Структуры шрифта и текста

Общие сведения о шрифтах и тексте

GetTextExtentPoint32

GetTextMetrics

LOGFONT