Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций Часть II.doc
Скачиваний:
14
Добавлен:
20.11.2018
Размер:
1.48 Mб
Скачать

3.4.4. Определение метрик шрифта

Метрику шрифта, выбранного в контекст отображения hdc, опреде­ляют с помощью функции GetTextMetrics:

BOOL GetTextMetrics( HDC hdc, LPTEXTMETRIC Iptm );

Параметр Iptm указывает на структуру типа TEXTMETRIC, в кото­рую нужно записать метрики шрифта. Вес размеры записываются в ло­гических единицах контекста отображения hdc. В случае успешного вы­полнения функция возвращает ненулевое значение.

Структура TEXTMETRIC предназначена для описания базовой ин­формации о метриках шрифта и описана следующим образом:

typedef struct { LONG tmHeight;

LONG tmAscent;

LONG tmDescent;

LONG tmlnternalLeading;

LONG tmExternalLeading;

LONG tmAveCharWidth;

LONG tmMaxCharWidth;

LONG tmWeight;

LONG tmOverhang;

LONG tmDigitizedAspectX;

LONG tmDigitizedAspectY;

BCHAR tmFirstChar;

BCHAR tmLastChar;

BCHAR tmDefaultChar;

BCHAR tmBreakChar;

BYTE tmltalic;

BYTE tmUnderlined;

BYTE tmStruckOut;

BYTE tmPitchAndFamily;

BYTE tmCharSet; } TEXTMETRIC;

Назначение полей этой структуры:

1. tmHeight - общая высота букв, равна tmAscent+tmDescent.

2. tmAscent - часть высоты букв от базовой линии с учетом таких эле­ментов, как тильда в букве "Й".

3. tmDescent - часть высоты букв ниже базовой линии.

4. tmlnternalLeading - высота таких выступающих элементов, как тильда в букве "Й", и может быть равна нулю.

5. tmExternalLeading - высота межстрочного интервала, рекомендуе­мая разработчиком шрифта, может быть приравнена нулю.

6. tmAveCharWidth - средняя ширина строчных букв, равна ширине латинской буквы "x".

7. tmMaxCharWidth - ширина самой широкой буквы.

8. tmWeight - жирность шрифта, может находиться в пределах от 0 до 1000, как и для логического шрифта.

9. tmOverhang - величина изменения ширины символов при построе­нии наклонного или полужирного шрифта из нормального шрифта.

10.tmDigitizedAspectX - разрешение устройства отображения по гори­зонтали.

11. tmDigitizedAspectY - разрешение устройства отображения по верти­кали.

12. tmFirstChar - код первого символа в шрифте.

13. tmLastChar - код последнего символа в шрифте.

14.tmDefaultChar - код символа, заменяющего любой отсутствующий в шрифте символ.

15. tmBreakChar - код символа переноса слов с одной строки на другую при выравнивании текста.

16. tmItaIic = 0 - означает наклонный шрифт.

17. tmUnderlined = 0 - означает подчеркнутый шрифт.

18. tmStruckOut = O - означает перечеркнутый шрифт.

19. tmPitchAndFamily - код семейства шрифта. Четыре младших бита этого кода комбинацией следующих констант определяют инфор­мацию о шаге и типе шрифта:

Константа

Пояснение

TMPF_FIXED_PITCH

Если этот бит установлен, то шрифт с пере­менным шагом, иначе - с постоянным

TMPF_VECTOR

Если этот бит установлен, то шрифт вектор­ного типа

TMPF_TRUETYPE

Если этот бит установлен, то шрифт типа TrueType

TMPF_DEVICE

Если этот бит установлен, шрифт определен устройством

Четыре старших бита кода tmPitchAndFamily описывают семейство шрифта, так же как и для логического шрифта.

20. tmCharSet - код используемого набора символов, такой же, как и для логического шрифта.