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


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

См. также

EnumFontFamilies

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

шрифтов и текста

GetTextExtentPoint32

GetTextMetrics

LOGFONT