- •Вопрос 1. Вывод текста. Шрифты. Параметры шрифтов ………………………3
- •Вопрос 2. Обработка сообщений от мыши и клавиатуры. Понятие
- •Вопрос 1. Вывод текста. Шрифты. Параметры шрифтов.
- •Типы шрифтов
- •Отображение на экране
- •1.3.1. Создание новых шрифтов
- •1.3.2. Функции для работы со шрифтами
- •Вопрос 2. Обработка сообщений от мыши и клавиатуры. Понятие фокуса ввода.
- •2. Клавиатура
- •2.1. Клавиатурные сообщения
- •2.2. Параметры клавиатурных сообщений
- •2.3. Символьные клавиатурные сообщения
- •3. Мышь
- •3.1. Сообщения, поступающие от мыши
Отображение на экране
Особенностью отображения текстов на экране является значительно меньшая разрешающая способность, чем достижима на бумаге даже для не самой совершенной техники. В связи с этим векторные шрифты на экране воспроизводятся с искажениями. Для того, чтобы избежать этих искажений, применяются различные способы:
• Хинтинги — набор инструкций, позволяющих улучшить форму символа, отображаемого на экране.
• Монохроматическое сглаживание — позволяет избавиться от «угловатости» символа путём частичного закрашивания пикселей, которые не полностью перекрываются линиями символа
• Субпиксельное сглаживание — расширение функции сглаживания, основанное на свойствах жидкокристаллических мониторов: в них каждый пиксель разделён на три субпикселя разных цветов, каждым из которых можно управлять отдельно, что позволяет увеличить горизонтальное разрешение теоретически в 3 раза. На практике есть множество ограничений: кроме необходимости соблюдать цветовой баланс, мешает значительному увеличению разрешающей способности и разница в восприятии разных цветов человеческим глазом: зелёный цвет кажется более ярким, в то время как красный — более насыщенным. Поэтому при изменении порядка следования цветов будут наблюдаться различные побочные явления: «размазывание» линии, цветные окантовки и т.д. Несмотря на это, шрифты после применения субпиксельного сглаживания гораздо лучше смотрятся на жидкокристаллическом экране, чем при монохроматическом сглаживании.
Windows поддерживает две главные категории шрифтов: «шрифты GDI» и «шрифты устройства» {device fonts). Шрифты GDI хранятся в файлах, которые обычно расположены в одном из подкаталогов операционной системы. Шрифты устройства соответствуют конкретному устройству вывода. Например, большинство принтеров имеет набор встроенных шрифтов устройства. Шрифты GDI подразделяются на три типа:
• растровые шрифты;
• векторные шрифты;
• шрифты типа TrueType.
В шрифтах растрового типа символы хранятся в виде растровых картинок — прямоугольных матриц из точек-пикселов. В этих шрифтах каждая точка символа описывается отдельно. Растровые шрифты удобны для вывода текста на экран, особенно при малой высоте букв. Однако для каждого размера шрифта и, возможно, для различных разрешений экрана необходимо хранить свой набор символов. Растровые шрифты плохо поддаются масштабированию, так как при увеличении символов просто дублируются строки или колонки пикселов, что, конечно, приводит к «зазубринам» в очертаниях глифов. Чаще всего растровые шрифты применяются для воспроизведения текстовых элементов интерфейса Windows.
В векторных шрифтах глиф описывается последовательностью линейных отрезков, которые затем рисуются с помощью пера. Векторные шрифты легко масштабируются в широких пределах. Однако они имеют более низкую скорость отображения, плохую четкость при маленьких размерах, а при большом увеличении символы выглядят очень бледными, потому что их контуры являются всего лишь тонкими линиями. В настоящее время они применяются в основном только для плоттеров. Векторные шрифты так же, как и растровые шрифты, хранятся в файлах с расширением .fon.
Семейства шрифтов в Windows
В Windows принято выделять так называемые семейства шрифтов по трём признакам: ширина штриха, ширина символов и наличию засечек. Для того, чтобы пояснить разницу между принятыми семействами, приведем небольшую таблицу, содержащую сводку характеристик разных семейств шрифтов в Windows:
Таблица 1 – Семейства шрифтов в Windows
|
Семейство |
Ширина штриха |
Ширина символов |
Наличие засечек |
примеры |
|
MODERN |
постоянная |
постоянная |
— |
Courier New |
|
ROMAN |
переменная |
переменная |
есть |
Times New Roman, Antiqua, Garamond, Palatino, Bodoni |
|
SWISS |
переменная |
переменная |
нет |
Arial, Helvetica, Futura, Avantgarde, Optima, Swiss |
|
SCRIPT |
— |
— |
— |
Script, Odessa Script FWF, Decor, Jikharev, Parsek |
|
DECORATIVE |
— |
— |
— |
Windings, MusicalSymbols, Symbol |
|
DONTCARE |
— | |||
Обычно к семейству MODERN относят все шрифты фиксированной ширины. Название MODERN указывает на сравнительно недавнюю историю этих шрифтов ― они получили распространение с развитием печатающей техники и компьютеров, тогда как другие виды шрифтов возникали с XV века, когда заканчивалась эпоха готического шрифта.
В те времена начинал формироваться шрифт, похожий по своему начертанию на один из древнейших шрифтов ― римский капитальный. Это был пропорциональный шрифт с засечками и нормальной контрастностью, позже он получил очень широкое распространение в типографском деле и дожил до наших дней. За свою долгую историю он многократно видоизменялся и стал родоначальником большого числа поколений шрифтов. В Windows такие шрифты относятся к семейству ROMAN.
Реально этому семейству соответствует очень большое число разных шрифтов, выделяемых в других классификационных системах. В частности, можно выделить так называемые брусковые шрифты, обычно со слабо выраженным контрастом и засечками, перпендикулярными штрихам и имеющими примерно такую же ширину (пример - Courier); В XX веке возникли шрифты, получившие очень широкое распространение. Наиболее распространенное название для этих шрифтов ― рубленые. Эти шрифты не имеют контраста и засечек (sans serif), в Windows им соответствует семейство SWISS. Семейство DONTCARE реально не соответствует никакой группе шрифтов. Оно используется только при указании, из какого семейства надо выбирать шрифт ― при этом оно обозначает “любое семейство”.
