Взаимодействие со справочными файлами

Страницы работы

Содержание работы

Взаимодействие со справочными файлами

Windows предоставляет стандартные функции для множества общих задач, что по зволяет разработчикам приложений сосредоточиться на реализации дополнительны: функциональных возможностей. Это существенно повышает функциональную мощ] приложений. К сожалению, в результате программы становятся сложнее в примене нии. Предоставление печатной документации обычно не решает проблему, поскольку типичный пользователь не склонен читать справочное руководство до тех пор, пок; окончательно не запутается.

Выход из положения заключается в предоставлении собственной интерактивно) (online) документации. Windows-приложение с именем Windows Help (WTNHLP32.EXE дает пользователю возможность легко просматривать интерактивную документацию представленную в стандартном формате help-файла (.HLP). Кроме того, Windows поддерживает функции и сообщения, которые могут использоваться приложением дл> организации взаимодействия со справочной системой. Такое взаимодействие позволя ет приложению предоставлять контекстно-зависимую справку, советы, обучающие иллюстрации (training cards) и другие возможности, недоступные в печатной документации

При создании справочного файла разработчик задает текст, растровые изображе ния, звуки и другие ресурсы, которые будут использоваться системой Windows Help Текст справки состоит из собственно документации, а также спецификации ключевы> слов, заголовков, порядка просмотра и другой информации. Все это объединяете утилитой Windows Help Compiler в справочный файл (HLP), на который ссылаете приложение.

Предоставление пользователю доступа к справочному файлу

Для этой цели в приложении можно использовать несколько методов. Как минимум, в строке меню окна приложения должен существовать пункт Help (Справка), который занимает крайнюю правую позицию. В показанном на рисунке выпадающем меню должны присутствовать, по крайней мере, пункты субменю, перечисленные в табл. 28.1.

Таблица 28.1 Пункты меню Help, используемые в приложениях Windows 95

__________________________

Пункт меню                       Описание

Help Topics

(Вызов справки)                Выводит содержимое справочной системы Windows (Help Finder).

About <приложение>     Выводит диалоговое окно, идентифицирующее приложение, его

(О программе...)             версию и т.п. Этот пункт меню должен следовать после разделителя.

Приложение должно описывать эти пункты меню в ресурсном файле и обрабатывать связанные сообщения WM_COMMAND в собственной оконной процедуре. Обработка пункта меню About обычно заключается в выводе диалогового окна, которое содержит значок приложения, номер версии, информацию об авторских правах и другие идентификационные данные. Остальные пункты меню обрабатываются с помощью функции WinHelp, которая обеспечивает взаимодействие между приложением и справочной системой Windows. Дополнительные сведения содержатся в приводимом ниже описании функции WinHelp.

В листинге 28.1 демонстрируется обработка пунктов меню Help Topics и About.

Листинг 28.1 Пример обработки пунктов меню Help

_______________________________________________

См.    \local-sources\chap28\t28-01.txt

Контекстно-зависимая справка

Помимо пункта меню Help приложение должно предоставлять, где только возможно, контекстно-зависимую справку. Контекстно-зависимая справка использует функцию WinHelp для отображения раздела, который выбирается исходя из текущего состояния приложения. Когда пользователь запрашивает контекстно-зависимую справку, Windows отправляет приложению сообщение WM_HELP. Запрос контекстно-зависимой справки осуществляется через нажатие клавиши F1 либо через щелчок на значке Help (если таковой имеется) в заголовке окна приложения с последующим щелчком на пункте меню, элементе управления или окне приложения, для которого необходима справка. От способа запроса зависит форма сообщения WM_HELP. В любом случае параметр IParam сообщения WM_HELP указывает на структуру HELPINFO, которую приложение может использовать для определения отображаемого раздела справки. Приложение должно обрабатывать сообщение WM_HELP путем вызова функции WinHelp с флагом HELP_WM_HELP, массивом идентификаторов элементов управления и идентификаторов контекстной справки.

Если возможно, в приложении должно быть реализовано всплывающее меню с пунктом What's This? (Что это такое?), который отображает контекстно-зависимую справку для элемента, на котором был выполнен щелчок правой кнопкой мыши. Это осуществляется за счет обработки сообщения WM_CONTEXTMENU и вызова функции WinHelp с флагом HELP_CONTEXTMENU и тем же массивом идентификаторов, который использовался в сообщении WM_HELP.

В листинге 28.2 демонстрируется обработка сообщений WM_HELP и WM_CONTEXTMENIL в процедуре диалогового окна для предоставления контекстно-зависимой справки.

Листинг 28.2 Контекстно-зависимая справка в диалоговом окне

_____________________________________

См.    \local-sources\chap2S\t28-02.txt

Приложения могут использовать функции SetMenuContextHelpID и SetWindow-ContextHelpID с целью установки значений контекстных идентификаторов для своих меню, окон и элементов управления. Затем эти значения передаются приложению в составе члена dwContextID структуры HELPINFO с сообщением WM_HELP. Для зап роса значений контекстных идентификаторов меню, окон и элементов управления можно воспользоваться функциями GetMenuContextHelpIDи GetWindowContextHelpID.

Похожие материалы

Информация о работе