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

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

EnumFontFamilies

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

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

GetTextExtentPoint32

GetTextMetrics

LOGFONT