2.3 Особенности TrueType шрифтов
Сейчас мы рассмотрим некоторые особенности применения собственных TrueType шрифтов. Эти особенности связаны с тем, что TrueType шрифт представлен в совершенно иной форме, чем растровые шрифты. Если Вы с помощью какого-либо инструментального средства (например, FontoGrapher) создадите TrueType шрифт, то обнаружите, что он представлен в виде файла с расширением .TTF.
Однако применять .TTF файл непосредственно нельзя. Для того, что бы можно было использовать TrueType шрифт надо построить промежуточный файл, обычно с расширением .FOT, который можно использовать вместо файла .FON для добавления шрифта в таблицу ресурсов. Для построения этого файла Вы должны воспользоваться функцией
BOOL CreateScalableFontResource(
nHidden, lpszResourceFile, lpszFontFile, lpszPath);
Эта функция создает файл с именем lpszResourceFile для доступа к .TTF файлу, заданному параметром lpszFontFile, параметр lpszPath указывает путь до .TTF файла. Последний оставшийся параметр nHidden указывает возможность использования шрифта другими приложениями. Если он 0, то другие приложения имеют доступ к этому шрифту, а если 1, то доступ запрещен и этот шрифт не перечисляется при переборе шрифтов (EnumFonts(), EnumFontFamilies()).
2.4 Настройка приложений
Заканчивая разговор о шрифтах, удобно рассмотреть еще один компонент Windows - средства для настройки приложений. Под настройкой (иногда "профилированием") понимается задание характеристик приложения и их сохранение для использования при следующем запуске.
Обычно такие задачи решаются с помощью создания конфигурационных файлов. Однако конфигурация описывается каждой задачей по-своему, что не всегда удобно. Windows предлагает общий для всех приложений механизм описания их характеристик, с использованием файлов настройки.
Такие файлы (обычно имеющие расширение .INI) являются обычными ASCII–файлами, разделенными на секции, начинающиеся с имени секции, заключенного в квадратные скобки. Далее следует список параметров в виде ‘параметр=значение’, каждый параметр размещается в отдельной строке. В этот файл можно вставлять комментарии - строки начинающиеся с ‘;’.
Пример взят из файла WORKSHOP.INI:
[User Controls]
BorShade=E:\BORLANDC\WORKSHOP\BWCC.DLL
[RWS_Bitmap]
PercentLeft=50
ZoomLeft=1
ZoomRight=1
bVert=0
[RWS_Font]
PercentLeft=50
ZoomLeft=4
ZoomRight=1
bVert=1
Для работы с такими файлами Windows предоставляет набор функций, осуществляющих запись и чтение параметров:
int GetProfileInt(lpszSection, lpszEntry, nDefault);
int GetProfileString(lpszSection, lpszEntry, lpszDefault, lpsBuffer, nMaxBuffer);
BOOL WriteProfileString(lpszSection, lpszEntry, lpszString);
Параметр lpszSection задает имя секции (скобок в имени указывать не надо), lpszEntry - имя параметра. Если мы получаем значение параметра, то можем указать значение по умолчанию, которое возвращается, если данный параметр не найден.
С помощью функции GetProfileString() можно получить список имен всех параметров в секции, указав lpszEntry= NULL. При этом имена параметров секции будут скопированы в буфер последовательно друг за другом, каждое имя будет заканчиваться 0 и после последнего имени будут стоять два 0.
Функция WriteProfileString() позволяет не только записывать параметры, но и удалять, для чего надо указать lpszString=NULL. Можно удалить целиком всю секцию, указав lpszEntry=NULL.
Все три рассмотренных функции используют файл WIN.INI. При этом имя секции часто ассоциируется с именем приложения. (Поэтому в документации имя секции часто называется именем приложения).
Конечно, часто бывает неудобно использовать общий файл настройки для всех существующих приложений (при этом, в частности, трудно организовать удаление приложений). Windows предоставляет возможность использовать собственный файл настройки (и даже несколько). Для работы с собственными файлами настройки предусмотрены еще три функции:
int GetPrivateProfileInt( lpszSection, lpszEntry, nDefault, lpszIniFile );
int GetPrivateProfileString(
lpszSection, lpszEntry, lpszDefault, lpsBuffer, nMaxBuffer, lpszIniFile);
BOOL WritePrivateProfileString(
lpszSection, lpszEntry, lpszString, lpszIniFile);
Последний параметр этих функций задает имя файла настройки. Если Вы не указываете путь к файлу, то он размещается в каталоге Windows.
2.5 Информация стандартных файлов настройки (win.ini и system.ini) о шрифтах и о принтере
Рассматривая настройку приложений надо подробнее остановиться на файле WIN.INI. Этот файл содержит большое количество характеристик, определяющих работу как самого Windows, так и многих его приложений. Позже мы будем иногда ссылаться на этот файл, например, при определении даты и времени.
Сейчас мы рассмотрим информацию, хранимую в этом файле, касающуюся шрифтов. Самая существенная для нас секция - [fonts]. В этой секции перечислены все шрифты, которые помещаются в системную таблицу при запуске Windows. Формат записей:
face name = file.fon
face name - это имя шрифта, а file.fon - имя шрифтового файла, содержащего растровый или векторный шрифт, или file.fot - TrueType шрифт.
Пример:
[fonts]
Academy (TrueType)=ACADEMY.FOT
Academy Bold (TrueType)=ACADEMY0.FOT
Следующая секция, относящаяся к шрифтам, [FontSubstitutes], указывающая, какие шрифты, входящие в Windows 3.1 должны использоваться вместо некоторых шрифтов, входивших в Windows 3.0. Формат записей:
new name= old name
Пример:
[FontSubstitutes]
Helv=MS Sans Serif
Courier=Helv
Если Вы адаптируете приложение Windows 3.0 для работы в Windows 3.1, то Вам надо ссылаться на эту секцию для определения имен шрифтов, которые Вы должны применять.
Дополнительно информация о системных шрифтах содержится в файле SYSTEM.INI, где в секции [boot] указываются системный (ANSI), терминальный (OEM) и системный фиксированной ширины (ANSI) шрифты. Это делается с помощью параметров:
[boot]
fonts.fon=vgasys.fon
fixedfon.fon=vgafix.fon
oemfonts.fon=vgaoem.fon
Эти шрифты используются Windows при загрузке, когда системная таблица шрифтов еще не инициализирована. Кроме того некоторые шрифты, используемые DOS окном в Windows определены в секциях:
[boot.description]
woafont.fon=English (437)
[386Enh]
woafont=dosapp.fon
EGA80WOA.FON=EGA80WOA.FON
EGA40WOA.FON=EGA40WOA.FON
CGA80WOA.FON=CGA80WOA.FON
CGA40WOA.FON=CGA40WOA.FON
Рассмотрение стандартных файлов настройки мы продолжим, перейдя к параметрам принтера. Для этого мы возвращаемся к файлу WIN.INI, секция [devices]. В этой секции перечислены все принтеры, которые были использованы инсталлированы. Каждая запись определяет имя принтера, имя драйвера и имя выходного устройства (последовательный или параллельный порт, файл); формат записей:
printer name= driver, port1 [,port2[,...]]
где printer name - имя принтера, driver - имя драйвера и portN - имя выводного устройства.
Пример:
[devices]
Epson FX-80=EPSON9,FILE:,LPT1:
то есть: принтер 'Epson FX-80' обслуживается драйвером 'EPSON9.DRV' и может направлять вывод в файл или в параллельный порт #1.
Характеристики выводных устройств должны быть указаны еще в двух местах - в секции [ports], где перечислены имена всех разрешенных выводных устройств и заданы характеристики последовательных портов, и в секции [PrinterPorts], где указаны предельные времена ожидания готовности и ошибки.
В секции [ports] записывается примерно такая информация:
[ports]
LPT1:=
LPT2:=
COM1:=9600,n,8,1
COM2:=9600,n,8,1,x
EPT:=
FILE:=
LPT1.DOS=
А в секции [PrinterPorts] записи похожи на секцию [device] с дополнительно указанными временами ожидания готовности и повторения для каждого устройства.
[PrinterPorts]
Epson FX-80=EPSON9,FILE:,15,45,LPT1:,15,45
С помощью всех рассмотренных параметров описываются установленные в данный момент принтеры, однако нас зачастую не интересуют все мыслимые принтеры, а только один - тот, который подключен непосредственно сейчас. Для того, что бы определить этот принтер надо обратить внимание на секцию [windows], в которой есть параметр:
device= printer name, driver, port
Описывающий имя текущего принтера, обслуживающего его драйвера и используемое выводное устройство. Обычно приходится пользоваться именно этой информацией.
и, при ко- вкручивает лампочку? Он берет ее тором вы получаете возможность в руку и заставляет Вселенную комбинировать изображение, звук вращаться вокруг себя. Windows - и текст). не просто операционная система, 6.Использование масштабируемых это новая философия работы с шрифтов True Type. В Windows компьютером. (из реферата о Windows) ...
... для построения информационной системы любого масштаба: от простейшей сети из нескольких персональных компьютеров до сложной гетерогенной системы на сотни тысяч пользователей. Система безопасности Windows NT Server обеспечивает защиту информации и системных служб от несанкционированного доступа и от неквалифицированных действий пользователей. Операционные системы Windows NT Server и Windows NT® ...
... Восстановление Поиск Просмотр и изменение свойств файлов и папок Создание ярлыка на рабочем столе (правой кнопкой мыши, с проводника, с главного меню, с папки мой компьютер) Настройка операционной системы Windows Настройка ОС осуществляется с целью создания условий для эффективной работы на ПК. Средства настроек можно разделить на пять групп: Средства ввода – вывода (клавиатура, мышь, ...
... действий одной из них; • обращение к внешним устройствам только через операционную систему, что позволяет программистам использовать уже написанные драйверы, и не заниматься проблемами обеспечения совместимости с ними вновь разработанных программ; • возможность использования звуковых и видеоприложений. В отличие от Windows З.х новая операционная система не нуждается в установке на компьютере ...
0 комментариев