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


Структура TEXTMETRICW (wingdi.h)

Структура TEXTMETRIC содержит основные сведения о физическом шрифте. Все размеры указаны в логических единицах; То есть они зависят от текущего режима сопоставления контекста отображения.

Синтаксис

typedef struct tagTEXTMETRICW {
  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;
} TEXTMETRICW, *PTEXTMETRICW, *NPTEXTMETRICW, *LPTEXTMETRICW;

Члены

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

Указывает сведения о шаге, технологии и семействе физического шрифта.

Четыре бита низкого порядка этого элемента указывают сведения о шаге и технологии шрифта. Константы определяются для каждого из четырех битов.

Постоянный Значение
TMPF_FIXED_PITCH Если этот бит задан, шрифт является шрифтом переменной тона. Если этот бит снят, шрифт является фиксированным шрифтом шага. Обратите внимание, что эти значения являются противоположностью тому, что подразумевает константное имя.
TMPF_VECTOR Если этот бит задан, шрифт является векторным шрифтом.
TMPF_TRUETYPE Если этот бит задан, шрифт является шрифтом TrueType.
TMPF_DEVICE Если этот бит задан, шрифт является шрифтом устройства.
 

Приложение должно тщательно проверять качества, закодированные в этих битах низкого порядка, не делая произвольных предположений. Например, помимо задания собственных битов, шрифты TrueType и PostScript задают TMPF_VECTOR бит. Шрифт растровой карты monospace имеет все эти биты с низким порядком очистки; Пропорциональный точечный шрифт задает бит TMPF_FIXED_PITCH. Шрифт устройства принтера Postscript задает TMPF_DEVICE, TMPF_VECTOR и TMPF_FIXED_PITCH битов.

Четыре бита высокого порядка tmPitchAndFamily назначить семейство шрифтов шрифта. Приложение может использовать значение 0xF0 и побитовый оператор AND для маскирования четырех низких битов tmPitchAndFamily, что позволяет получить значение, которое можно напрямую сравнить с именами семейств шрифтов, чтобы найти идентичное совпадение. Сведения о семействах шрифтов см. в описании структуры LOGFONT .

tmCharSet

Набор символов шрифта. Набор символов может быть одним из следующих значений.

  • ANSI_CHARSET
  • BALTIC_CHARSET
  • CHINESEBIG5_CHARSET
  • DEFAULT_CHARSET
  • EASTEUROPE_CHARSET
  • GB2312_CHARSET
  • GREEK_CHARSET
  • HANGUL_CHARSET
  • MAC_CHARSET
  • OEM_CHARSET
  • RUSSIAN_CHARSET
  • SHIFTJIS_CHARSET
  • SYMBOL_CHARSET
  • TURKISH_CHARSET
  • VIETNAMESE_CHARSET
корейский язык выпуска Windows:
  • JOHAB_CHARSET
выпуск Windows на Ближнем Востоке:
  • ARABIC_CHARSET
  • HEBREW_CHARSET
выпуск Windows:
  • THAI_CHARSET

Замечания

Заметка

Заголовок wingdi.h определяет TEXTMETRIC как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
заголовка wingdi.h (включая Windows.h)

См. также

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

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

GetTextExtentPoint32

GetTextMetrics

LOGFONT