Шаг 72.
Среда программирования Visual C++.
Создание разделов справки
На этом шаге мы рассмотрим создание разделов справки.
Добавим в приложение MyHelpApp новый пункт меню, а также составим
соответствующие разделы справочной системы. Кроме того, Вы научитесь добавлять информацию о контексте
справки для корректной работы контекстно-зависимой справки.
Для выполнения этих упражнений нам понадобится текстовый редактор типа Microsoft Word,
поддерживающий обработку RTF-файлов.
- Добавление команды ID_IMPORT_TEXTFILE.
- Из вкладки ResourceView проекта MyHelpApp откройте для редактирования меню
IDR_MAINFRAME. Добавьте в него новый пункт меню с названием &Import, а в нем - команду
&Text File. Закройте и вновь откройте окно Menu Item Properties, чтобы убедиться, что редактор
меню создал для этой команды идентификатор ID_IMPORT_TEXTFILE.
- Соберите приложение MyHelpApp. Обратите внимание на появившиеся в окне Output следующие сообщения:
Making Help include file...
Making Help file...
- В подкаталоге hlp найдите файл MyHelpApp.hm. Просмотрите его в Блокноте и
убедитесь, что утилита MakeHm поместила в него идентификатор контекста справки HID_IMPORT_TEXTFILE.
Закройте файл MyHelpApp.hm.
В следующем упражнении добавим в RTF-файл приложения новые разделы. Чтобы понять структуру файла,
откройте AfxCore.rtf в текстовом редакторе, поддерживающем формат RTF. Если в редакторе
предусмотрен показ скрытого текста, включите его. В Word для этого достаточно выбрать в меню
Tools (Сервис) команду Options (Параметры) и установить на вкладке
View (Вид) флажок Hidden text (Скрытый текст).

Рис.1. Показ скрытого текста
Кроме того, обеспечьте возможность редактирования сносок. В Word для этого нужно в меню
View (Вид) щелкнуть команду Footnotes (Сноски).
На рисунке 2 показано, как файл AfxCore.rtf выглядит в редактор Word в режиме Вид | Обычный.

Рис.2. Файл AfxCore.rtf в Microsoft Word
В RTF-файле каждый раздел справки (кроме первого) начинается с символа разрыва страницы. В разделе
могут быть гипертекстовые ссылки на другие разделы справки. Их легко отличить: текст ссылки
дважды подчеркнут и за ним без пробелов следует адрес ссылки, оформленный как скрытый текст. Адресуемое
ссылкой место помечается в тексте сноской с символом #. Текст сноски содержит имя контекста, которое
является либо внутренним именем файла справки, либо одним из идентификаторов контекста, заданным в НМ-файле
проекта справки. Внедренные идентификаторы контекста нужны правочной системе для поиска и отображения
нужного раздела контекстно-зависимой справки.
Сноски с символом К применяются для задания ключевых слов для поиска, а с символом $ - для названий разделов справки.
Текст в двойных угловых скобках (например <<YourApp>> на рисунке 2) - это генерируемая
AppWizard заглушка, вместо которой надо поместить текст для Вашего приложения.
Сейчас создадим раздел справки для меню Import, которое мы добавили в приложение MyHelpApp.
- Создание раздела справки для меню Import.
- В файле AfxCore.rtf вместо заглушек "YourApp" вставьте МуHelpApp.
- В первом разделе замените текст гипертекстовой ссылки Record menu на Import menu.
(Меню Record в приложении MyHelpApp отсутствует, поэтому для него справка не требуется.)
- Измените место назначения этой ссылки (спрятанный текст непосредственно после текста ссылки) на menu_import.
- В подходящее место добавьте новый раздел с именем Import Menu Commands. He забудьте, что раздел
должен иметь свою собственную страницу, для чего достаточно нажать CTRL+ENTER. В заголовке
поместите сноску с символом #, а в тексте сноски введите menu_import. На странице раздела должна
находиться гипертекстовая ссылка Text File, содержащая переход на позицию HID_IMPORT_TEXTFILE. После гиперссылки надо ввести поясняющий текст,
отформатированный обычным образом (рисунок 3).

Рис.3. Раздел справки для меню Import
Для получения гипертекстовой ссылки нужно выделить фразу Text File, а затем подчеркнуть ее двойной чертой
(пункт меню Формат | Шрифт). Позиция HID_IMPORT_TEXTFILE отмечается так: выделяется
этот фрагмент текста, а затем при выполнении пункта меню Формат | Шрифт выделенный фрагмент помечается как скрытый.
- Добавьте еще один раздел, озаглавленный Text Files command (Import menu). В заголовке вставьте сноску с символом #, а в
тексте сноски введите HID_MPORT_TEXTFILE. Добавьте сноску с символом К и текстом "Importing Text Files". Введите
поясняющий текст (рисунок 4).

Рис.4. Раздел справки Importing Text Files
- Сохраните и закройте файл AfxCore.rtf.
Замечание. В реальной работе Вы, вероятно, захотите переиме новать файлы AfxCore.rtf и AfxPrint.rtf, чтобы они
отражали название Вашего приложения. Для этого нужно изменить соответствующие ссылки в проектах Visual Studio и Microsoft Help Workshop.
- Соберите заново и запустите приложение MyHelpApp. Нажмите F1 и просмотрите оглавление справки.
Найдите "Import menu", а затем - "Text files", чтобы перейти к разделу "Importing Text Files".
Закройте справку для приложения MyHelpApp.
- Проверьте работу контекстно-зависимой справки для команды Text Files меню Import.
- Откройте диалоговое окно Help Topics и на вкладке Find (Предметный указатель) выполните
поиск по ключевым словам этого раздела.
Замечание. Поиск раздела по ключевым словам возможен, так как в файл
AfxCore.rtf были добавлены сноски с символами К и $.
Текст измененного приложения можно взять здесь (110,3 Кб).
На следующем шаге мы рассмотрим создание справки в формате HTML.
Предыдущий шаг
Содержание
Следующий шаг