Прототип к варианту 23 - Просмотрщик системных шрифтов
Приложение FontView
Программа FontView позволяет модифицировать атрибуты логического шрифта, а затем вывести полученный шрифт на примере образца, введенного пользователем. Далее функция выводит текстовые метрики выбранного физического шрифта.
Использование FontView
Рабочее окно FontView показано на рис. 11.6. Список заполняется именами гарнитур доступных шрифтов. В текстовых полях Height и Width вводится запрашиваемая ширина и высота символов в пикселах. Размеры возвращаемого шрифта заведомо не превышают заданных, даже если для соблюдения этого требования GDI придется выбрать другую гарнитуру.
В текстовом поле Escapement вводится угол вывода текста в десятых долях градуса. Флажки Underl ine, Ital ic и StrikeOut понятны без комментариев. В поле Sample Text вводится текст образца.
При нажатии кнопки ShowFont в графическом поле выбирается логический шрифт и выводится текст образца. Кнопка ShowMetrics вызывает окно сообщения с информацией о физическом шрифте, который был выбран по введенным атрибутам (рис. 11.7). Кнопка Showlnfo выводит дополнительные данные о шрифте, как показано на рис. 11.8.
Рис. 11.7. Вывод характеристик физического шрифта
Рис. 11.8. Вывод дополнительных данных
Описание проекта
Проект Font View состоит из четырех файлов. Файл FONTVIEW. FRM содержит главную форму проекта. Вспомогательная форма FNTVIEW2.FRM используется для вывода информации о шрифте. В файле FONTVIEW.BAS объявляются константы и функции. APIGID32.BAS содержит объявления функций библиотеки динамической компоновки APIGID32.DLL.
Листинги FontView
Модуль FONTVIEW.BAS (листинг 11.1) содержит объявления констант и функций, используемых в программе.
Листинг 11.1. Модуль FONTVIEW.BAS
Attribute VB_Name » "FONTVIEW1"
Приложение FontView
Copyright (с) 1995-1997, by Desaware
Option Explicit
Полный список констант API, используемых в приложении, можно найти на компакт-диске и в файле API32.TXT. В приложении используются константы с префиксами OUT_, CLIP_, TMPF_, NTM_, FF_, FW_ и GCP_ (они не приводятся для экономии места).
Кроме того, для экономии места были исключены объявления следующих структур: LOGFONT, RECT, TEXTMETRIC и NEWTEXTMETRIC. Они приведены на компакт-диске в тексте модуля и в приложении Б.
Следующая функция показывает, как создать логический шрифт, заполняя поля структуры LOGFONT. В этом примере используется лишь часть полей — попробуйте поэкспериментировать с другими атрибутами (например, точностью и семейством шрифта). При вызове функции API SelectObject Windows находит физический шрифт, как можно более точно соответствующий запрошенному логическому шрифту.
В Win 16 байты в структурах определялись как односимвольные строки фиксированной длины. Это приводило к тому, что для работы с этими полями приходилось использовать функции Asc и Chr$. С появлением числового типа Byte в VB4 все это стало ненужным, как показывает следующий листинг.
' Создает логический шрифт на •основании заданных атрибутов. ' Затем выводит образец строки, оформленной этим шрифтом.
Функция GetTextMetrics получает информацию о физическом шрифте. В окне сообщения, вызываемом этой функцией, выводятся текстовые метрики, которые можно сравнить с атрибутами запрашиваемого логического шрифта.
Функция cmdFontInfo_Click вызывает форму frmlnfo для вывода дополнительной информации о шрифте.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.