Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы© Александр Фролов, Григорий ФроловТом 17, М.: Диалог-МИФИ, 1994, 287 стр. 4.3. Графические изображенияВстроенная в Windows справочная система позволяет использовать 16-цветные графические изображения (битовые и метафайлы) как для иллюстрации, так и в качестве средства организации ссылок на разделы. Непосредственная вставка изображенияСамый простой способ включения графического изображения был использован в примере файла hlpfile.rtf. Мы подготовили изображение в графическом редакторе Paintbrush и вставили его через Clipboard непосредственно в текст, пользуясь текстовым процессором Microsoft Word for Windows. Этот способ хорош в тех случаях, когда одно и то же изображение вставляется в текст справочной системы один-два раза. Дело в том, что сколько раз вы вставите в текст одну и ту же картинку, столько раз соответствующей ей массив данных будет записан в hlp-файл. Еще одно ограничение заключается в том, что вы можете вставить изображение только как символ в текстовую строку. При этом невозможно добиться эффекта "обтекания" изображения текстом. Однако несомненное преимущество непосредственной вставки графики в исходный текст справочной системы заключается в том, что внешний вид исходного текста будет больше соответствовать результату компиляции. Вставка с помощью ссылкиЧаще для вставки графических файлов в исходный текст раздела справочной системы используется косвенная ссылка следующего вида: {bmc check1.bmp} {bml check2.bmp} {bmr check3.bmp} Здесь приведены три ссылки на файлы check1.bmp, check2.bmp и check3.bmp, содержащие графические изображения. Перед именем файла необходимо указать одну из трех команд вставки (есть две разновидности каждой команды, см. ниже). В зависимости от выбранной команды будет использован один из трех способов взаимного расположения текста и графического изображения в окне раздела:
Если вы создаете справочную систему, предназначенную для записи на компакт-диск, в некоторых случаях удобнее использовать команды bmcwd, bmlwd, bmrwd. При использовании этих команд графические данные располагаются на диске рядом с окружающим их текстом, что значительно ускоряет процесс отображения. Если на один и тот же графический файл будет сделано несколько ссылок, при использовании команд bmc, bml и bmr в hlp-файле будет храниться только один экземпляр графических данных. Если же изображения вставлены командами bmcwd, bmlwd и bmrwd, для одного и того же изображения графические данные будут вставлены в hlp-файл столько раз, сколько имеется ссылок. Использование изображений для ссылок на разделРанее мы рассмотрели способ организации гипертекстовых ссылок между разделами с использованием специальным образом выделенных текстовых строк. Однократно или двукратно подчеркнутая строка в сочетании со строкой контекста, оформленной скрытым текстом, служит в качестве чувствительной точки (hot spot). При выборе такого изображения мышью произойдет переход к другому разделу (или временному окну). В качестве такой чувствительной точки можно использовать графическое изображение, вставленное при помощи ссылки на имя bmp-файла: В данном примере битовое изображение logo.bmp используется для организации гипертекстового перехода к разделу с контекстом "missing". ГиперграфикаНельзя не упомянуть о возможности создания нескольких чувствительных точек в одном графическом изображении. Такое изображение называется гиперграфическим. Для создания гиперграфического изображения используется специальный редактор Microsoft Hotspot Editor (приложение shed.exe, поставляется в составе практически всех средств разработки приложений Windows). Получая на входе файл с битовым изображением или метафайлом, этот редактор создает файл с расширением имени shg, содержащий кроме изображения описание размеров и расположения чувствительных зон и соответствующих им строк контекста. Так как практически гиперграфика используется достаточно редко, ради экономии места в книге мы оставим этот материал на самостоятельное изучение. Всю необходимую информацию вы сможете получить в руководстве Help Compiler Guide, которое поставляется в составе SDK (а также из справочной системы редактора Microsoft Hotspot Editor). Как учесть разрешение монитораРазработчики приложений Windows работают на мощных компьютерах, оснащенных современными 17-дюймовыми мониторами и видеоконтроллерами, способными работать при разрешении, скажем, 1280х1024 пикселов (ну хорошо, не все разработчики так хорошо живут, но многие). И вот, подготовив в одном из режимов работы монитора с высоким разрешением прекрасное битовое изображение, они вставляют его в справочную систему и поставляют пользователям. А у тех обычно техника выглядит поскромнее. Запустив такую справочную систему на компьютере с монитором EGA (что еще не самый плохой вариант!), пользователи сталкиваются с искажениями графических изображений. Рисунки, подготовленные в режиме с высоким разрешением, не помещаются на экране компьютера! Для выхода из подобной ситуации Microsoft разработал специальный формат файла, в котором предусмотрено хранение нескольких битовых изображений с разным разрешением в одном файле. Компилятор Microsoft Windows Multiple Resolution Bitmap Compiler (файл mrbc.exe) может объединить несколько bmp-файлов, подготовленных в режимах с разным разрешением, в один файл с расширением имени mrb. Если такой файл вставить в исходный текст справочной системы при помощи ссылки (команды bmc, bml, bmr и т. п.), при отображении будет использоваться то изображение, разрешение которого соответствует текущему разрешению монитора. Мы рассмотрим самый простой способ использования компилятора mrbc.exe - пакетный (есть и другой, интерактивный). Подготовьте 4 варианта одного и того же графического изображения (в формате DIB) в режимах CGA, EGA, VGA и 8514. Вы должны создать 4 bmp-файла. Затем измените расширение имени файла так, чтобы первая буква расширения указывала на использованное при подготовке файла разрешение:
Затем запустите компилятор в пакетном режиме: mrbc /s nicebmp.cga nicebmp.ega nicebmp.vga nicebmp.854 Получившийся в результате файл nicebmp.mrb можно использовать для ссылки в исходном тексте справочной системы. |