1. Семейства шрифтов в Windows
По трем из рассмотренных признаков (ширина штриха, ширина символов и наличию засечек) в Windows принято выделять так называемые семейства шрифтов. Для того, что бы пояснить разницу между принятыми семействами, приведем небольшую табличку, содержащую сводку характеристик разных семейств шрифтов в 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 реально не соответствует никакой группе шрифтов. Оно используется только при указании, из какого семейства надо выбирать шрифт - при этом оно обозначает “любое семейство”.
Возможно вы искали - Реферат: Сенсорный монитор
1.1 Стандартные шрифты Windows
В стандартной поставке Windows присутствует небольшой набор шрифтов, представляющий все (определенные в Windows) семейства шрифтов. Этот набор включает в себя растровые, векторные и TrueType шрифты, информация о которых сведена в небольшую таблицу:
| Имя шрифта | семейство | кодовая таблица | файл(ы) |
| растровые шрифты | |||
| System | SWISS | ANSI | xxx SYS.FON |
| FixedSys | DONTCARE | ANSI | xxx FIX.FON |
| Terminal | MODERN | OEM | xxx OEM.FON |
| Courier | MODERN | ANSI | COURy .FON |
| MS Sans Serif | SWISS | ANSI | SSERIFy .FON |
| MS Serif | ROMAN | ANSI | SERIFy .FON |
| Small Fonts | ROMAN | ANSI | SMALLy .FON |
| Symbol | DECORATIVE | SYMBOL | SYMBOLy .FON |
| векторные шрифты | |||
| Modern | MODERN | OEM | MODERN.FON |
| Roman | ROMAN | OEM | ROMAN.FON |
| Script | SCRIPT | OEM | SCRIPT.FON |
| TrueType | |||
| Arial | SWISS | ANSI | ARIALzz .TTF(.FOT) |
| Courier New | MODERN | ANSI | COURzz .TTF(.FOT) |
| Times New Roman | ROMAN | ANSI | TMSRMN.TTF(.FOT) |
| Windings | DONTCARE | ANSI | WINDINGS.TTF(.FOT) |
В этой таблице следует внимательно рассмотреть имена файлов. В этих именах маленькими буквами (xxx,y,zz ) обозначены изменяющиеся части.
Так xxx обозначает устройство, для которого был спроектирован шрифт. Вместо этой последовательности реально написано CGA, EGA, VGA или 8514.
Символ y обозначает категорию устройств, к которой относится данный шрифт. Возможные значения можно найти в таблице:
| Буква | Соотношение сторон | Разрешающая способность X/Y (пиксел/дюйм) | Устройство |
| A | 200 | 96/48 | CGA |
| B | 133 | 96/72 | EGA |
| C | 83 | 60/72 | Okidata printers |
| D | 167 | 120/72 | IBM, Epson printers |
| E | 100 | 96/96 | VGA |
| F | 100 | 120/120 | IBM 8514 |
Похожий материал - Реферат: Серверы и системы управления базами данных
Последовательность zz указывает, какого типа шрифт описан в этом файле: нормальный (пустая последовательность), жирный BD , наклонный I или жирный наклонный BI .
1.2 Получение хендла шрифта
Для того, что бы Вы могли применять шрифт в Вашей программе, Вы должны сначала получить хендл соответствующего шрифта. Шрифт является объектом GDI, поэтому работа с ним похожа на работу с другими объектами GDI. Как правило вы должны выполнить следующие действия:
получить хендл либо стандартного шрифта, либо создав "новый" шрифт
При создании "нового" шрифта создается соответствующий объект GDI, а не новый файл описания шрифта.
Очень интересно - Курсовая работа: Сервис электронных услуг
выбрать шрифт в контекст устройства
осуществить вывод, используя текущий шрифт
если шрифт был создан, то его надо уничтожить.
Создание шрифтов занимает некоторое время (особенно для отображения TrueType шрифтов - Windows автоматически генерирует промежуточный растровый шрифт, который и используется при выводе). Если надо создавать шрифты, то это удобно делать при создании окна или даже при запуске приложения, а уничтожать - при закрытии окна или при завершении приложения (как и все объекты GDI, созданный шрифт уничтожается с помощью функции DeleteObject ).
Если Вам надо получить хендл стандартного шрифта, то Вы можете воспользоваться функцией:
Вам будет интересно - Курсовая работа: Сервісні послуги MS Word
HFONTGetStockObject( nIndex );
Параметр nIndexможет быть:
| ANSI_FIXED_FONT | соответствует шрифту Courier |
| ANSI_VAR_FONT | соответствует шрифту MS Sans Serif |
| OEM_FIXED_FONT | соответствует шрифту Terminal |
| SYSTEM_FONT | соответствует шрифту System; этот шрифт используется по умолчанию |
| SYSTEM_FIXED_FONT | соответствует шрифту FixedSys; До версии Windows 3.0 системный шрифт был фиксированной ширины, он включен в Windows 3.1 для совместимости. |
| DEVICE_DEFAULT_FONT | соответствует шрифту, загруженному в устройство; для дисплея не определен |
Если Вам надо создавать собственный шрифт, то Вы можете воспользоваться одной из двух функций:
HFONT CreateFont(
nHeight, nWidth, nEscapement, nOrientation, nWeight,
Похожий материал - Реферат: Середовище програмування Borland Delphi
bItalic, bUnderline, bStrikeOut,
bCharSet, bOutputPrecision, bClipPrecision, bQuality, bPitchAndFamily,
lpszFacename);
или