Структура 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, в которой после выполнения функции будут содержаться текстовые установки текущего шрифта, связанного с данным контекстом устройства. Функция возвращает ненулевое значение при успешном завершении и ноль - в противном случае. |