Контекстна довідка на html help
Історія довідкових систем від Microsoft налічує чотири версії:
На даний момент найбільш зручним форматом, з точки зору як розробки (наявність великого інструментарію), так і поширення (підтримка операційною системою), безсумнівно, є HTML Help 1.3.
Створення найпростішої довідки
Основним файлом довідки є файл проекту (.HHP), що описує опції компіляції і містить посилання на всі інші файли, які беруть участь при складанні. Структура .HHP-файлу - це структура INI-файлу. Зазвичай немає необхідності редагувати файл проекту вручну - все, що потрібно, може бути задано за допомогою HTML Help Workshop (HHW). Новий проект може бути створений за допомогою майстра - командою File> New> Project.
Файл проекту може бути створений і вручну. Ось приклад типового .HHP-файлу:
Покажчик описується на вкладці Index і зберігається в .HHK-файлі.
Якщо ви хочете мати можливість використовувати в .HHC- і .HHK-файлах українську мову, чи не редагуйте ці файли в HTML WorkShop - це засіб не вміє працювати з українською мовою. - прим.ред.
Рекомендується описати використовувані у всіх топіках стилі за допомогою CSS і помістити опис в окремому файлі - наприклад, Manual.css - який підключати в заголовку кожної теми:
Збірка (компіляція)
Для складання готового .CHM файлу з HHW використовуйте команду File> Compile або відповідну кнопку на панелі команд.
У деяких випадках може знадобитися можливість складання довідника в автоматичному режимі - використовуйте утиліту hhc.exe з параметром - ім'ям файлу проекту:
Контекстна довідка
Будемо вважати, що у нас вже написані HTML-файли, що описують окремі об'єкти програми (головне вікно, діалоги і т.п.), і нам залишається тільки зв'язати програму з цими файлами.
1. У проекті на VB.NET заводимо окремий модуль (наприклад, HelpSystem). У ньому ми описуємо всі речі в програмі, для яких у нас буде контекстна довідка, наприклад:
тобто тут ми описуємо те ж, що і в HelpContextID enum, але в іншому форматі. HelpContextID enum і Map.h повинні бути «синхронізовані» - щоб ID в програмі і в довідці завжди збігалися. У C / C ++ це було простіше - формат файлу Map.h був спеціально пристосований для того, щоб вхідний файл для довідки збігався з файлом, який використовується в самій програмі.
У проекті довідки заводимо файл Aliases.h виду:
Тут задається відображення символічного імені, заданого в Map.h, на конкретну тему і місце в ній.
Виклик контекстної довідки відбувається так: в HTML Help API передається ідентифікатор довідки - ціле число, яке визначається в HelpContextID enum - по ньому (використовуючи Map.h) визначається символічне ім'я, потім по символічному імені (використовуючи Aliases.h) визначається тема, яка буде відображено.
У файлі проекту довідки задаємо посилання на Aliases.h і Map.h: