Структура TEXTMETRIC


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

Синтаксис

typedef struct tagTEXTMETRIC { 
  LONG  tmHeight; 
  LONG  tmAscent; 
  LONG  tmDescent; 
  LONG  tmInternalLeading; 
  LONG  tmExternalLeading; 
  LONG  tmAveCharWidth; 
  LONG  tmMaxCharWidth; 
  LONG  tmWeight; 
  LONG  tmOverhang; 
  LONG  tmDigitizedAspectX; 
  LONG  tmDigitizedAspectY; 
  TCHAR  tmFirstChar; 
  TCHAR  tmLastChar; 
  TCHAR  tmDefaultChar; 
  TCHAR  tmBreakChar; 
  BYTE  tmItalic; 
  BYTE  tmUnderlined; 
  BYTE  tmStruckOut; 
  BYTE  tmPitchAndFamily; 
  BYTE  tmCharSet; 
} TEXTMETRIC, *PTEXTMETRIC; 
Члены структуры
 
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. Растровый шрифт фиксированной ширины имеет все эти младшие биты  сброшенными; пропорциональный растровый шрифт устанавливает бит 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

Смотри также

Обзор шрифты и текст, Структуры, используемые шрифтами и текстом, GetTextExtentPoint32, GetTextMetrics, LOGONT

Размещение и совместимость TEXTMETRIC

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Заголовочный файл

 

- объявлено в

Wingdi.h

- включено в

Windows.h

Unicode

Объявлены как структуры Unicode и ANSI

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz