Структура 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; //Вертикальный коэффициент сжатия
BCHAR tmFirstChar; //Первый символ шрифта
BCHAR tmLastChar; //Последний символ шрифта
BCHAR tmDefaultChar; //Символ, выбираемый по умолчанию
BCHAR tmBreakChar; //Символ, используемый для разделения слов
BYTE tmItalic; //Не ноль, если шрифт курсивный
BYTE tmUnderlined; //Не ноль, если шрифт подчеркнутый
BYTE tmStruckOut; //Не ноль, если шрифт перечеркнутый
BYTE tmPitchAndFamily; //Тип и семейство шрифта
BYTE tmCharSet; //Идентификатор базового набора символов
} TEXTMETRIC;
Получить информацию о текущем шрифте можно с помощью функции GetTextMetrics(). Её прототип таков:
BOOL CDC::GetTextMetrics(LPTEXTMETRIC lpTextAtrib) const;
Здесь параметр lpTextAtrib является указателем на структуру типа TEXTMETRIC, в которой после выполнения функции будут содержаться текстовые установки текущего шрифта, связанного с данным контекстом устройства. Функция возвращает ненулевое значение при успешном завершении и ноль - в противном случае.