На этом шаге мы рассмотрим состав справочной системы.
Если при создании приложения средствами AppWizard был установлен флажок Context-sensitive Help, то в папке Вашего проекта создается подкаталог hlp, куда будут скопированы файлы, необходимые для создания файла справки. На рисунке 1 показано содержимое папки hlp для проекта MyHelpApp (после его сборки).
Рис.1. Папка MyHelpApp\hlp
Расскажем о назначении этих файлов.
Файл проекта справки с расширением *.hpj необходим компилятору для построения справочной системы приложения. Для управления HPJ-файлами предназначено приложение Microsoft Help Workshop, позволяющее визуально разрабатывать справочную систему приложения. Для этой программы HPJ-файлы играют такую же роль, как DSW-файлы проекта для Visual Studio. Подобно Visual Studio, Help Workshop может работать с несколькими типами файла.
Исполняемый файл приложения Microsoft Help Workshop (hcw.exe) помещается в папку
Рис.2. Файл MyHelpApp.hpj в Help Workshop
В файле проекта справки перечислены разделы, которые моя модифицировать кнопками в правой части окна. Параметры для компилятора справки устанавливаются в разделе [OPTIONS]. В других разделах содержатся ссылки на файлы других типов, которые можно включить в проект справки.
Файлы в формате RTF соответствуют страницам справки. Список включаемых в проект RTF-файлов находится в HPJ-файле в разделе [FILES].
AppWizard формирует "скелет" RTF-файлов с разделами справочной системы для основных элементов пользовательского интерфейса, таких, как меню File и Edit. Эти файлы Вы можете изменить по своему усмотрению, добавив текст, отражающий назначение и функции приложения.
RTF-файлы могут содержать ссылки на растровые BMP-файлы с иллюстрациями.
Файлы с расширением *.hm создаются программой MakeHm, который считывает файл Resource.h и формирует идентификаторы контекста справки, соответствующие идентификаторам ресурсов приложения - диалоговых окон, команд и т. д. Необходимо помнить, что MakeHm не гарантирует уникальность создаваемых идентификаторов, поэтому иногда появляются одинаковые имена.
В файле проекта справки включаемые НМ-файлы перечислен разделе [MAP]. В их число входит как НМ-файл самого проекта, так и стандартные НМ-файлы MFC. Компилятор справки извлекает из НМ-файлов идентификаторы контекста справки и связывает разделы справки с соответствующими ресурсами пользовательского интерфейса приложения.
Если при создании идентификаторов ресурса следовать правилам формирования идентификаторов и применять стандартные префиксы, то новые идентификаторы будут сформированы корректно. Имена, предлагаемые редактором ресурсов Visual C++, всегда снабжаются корректными префиксами. Дополнительную информацию на эту тему Вы найдете в разделе "Preferred Resource ID Prefixes" справочной системы Visual C++.
При добавлении в проект нового ресурса всегда добавляйте в RTF-файл соответствующий тематический раздел. В соответствии с задаваемыми AppWizard правилами сборки проекта после изменения исходных файлов справочная система автоматически генерируется заново. В соответствии с одним из таких правил после изменения файла Resource.h вызывается программа MakeHm.exe.
Файлы оглавления с расширением *.cnt содержат информацию, необходимую для создания в окне справки вкладки Contents (Содержание). Help Workshop предоставляет визуальные средства редактирования файлов оглавления (рисунок 3).
Рис.3. Файл MyHelpApp.cnt в Help Workshop
Файл с расширением *.ph содержит таблицу ключевых фраз и создается компилятором справки, если применяется сжатие.
Файл справочной системы, имеющий расширение *.hlp, создается в результате работы компилятора справки. Он помещается в основную папку исходных файлов приложения и в дополнительные папки выходных файлов (папки Debug или Release), чтобы при любом варианте запуска приложения была всегда доступна самая последняя версия справочной системы.
В файл журнала с расширением *.log помещаются сообщения компилятора справки. Эти файлы можно просматривать средствами Help Workshop.
На следующем шаге мы рассмотрим программную реализацию справки.