Подключение справочной системы к программе

При использовании Visual Basic для просмотра справочного файла с помощью программного кода следует выполнить следующие действия:

Разместить в модуль программы API функцию WinHelp. Запрограммировать обращение к функции путем использования кодов команд управления просмотром справочного файла.

Основные команды управления справочной службой:

Команда Код
Открытие оглавления
Открытия раздела поиска по ключу 105h
Справка о «Справке»
Закрытие справочной службы Windows

Функция WinHelp требует для своей работы задания четырех параметров:

· Указателя на окно программы

· Имя справочного файла проекта

· Кода команды

· Параметра

Пример кода модуля программы с процедурой для просмотра содержимого справочного файла.

Declare Function WinHelp Lib "user32" Alias "WinHelpA" _

(ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, ByVal dwData As Any) As Long

Public Const HELP_QUIT = 2 'Закрыть справочную службу

Public Const HELP_FINDER = 11 'Вывод содержания

Public Const HELP_HELPONHELP = 4 'Получение "справки о справке"

Public Const HELP_PARTIALKEY = &H105

Sub HelpFile(frmForm As Form, nHelpCmd As Integer)

Dim i As Integer

Dim nFlag As Integer

Dim aData As Variant

'Проверка наличия файла справки

If Len(LTrim(RTrim(App.HelpFile))) = 0 Then

MsgBox "Справочный файл не найден !", _

vbOKOnly + vbCritical,"Информация"

Exit Sub

End If

'Проверка достоверности команд

Select Case nHelpCmd

Case Is = HELP_QUIT

nFlag = True

Case Is = HELP_FINDER

nFlag = True

Case Is = HELP_HELPONHELP

nFlag = True

Case Is = HELP_PARTIALKEY

nFlag = True

Case Else

nFlag = False 'invalid command!

End Select

'Вызов справочной службы Windows с

'допустимым кодом команды

If nFlag = True Then

If nHelpCmd = HELP_PARTIALKEY Then

i = WinHelp(frmForm.hwnd, App.HelpFile, nHelpCmd, "")

Else

i = WinHelp(frmForm.hwnd, App.HelpFile, nHelpCmd, 0&)

End If

Else

MsgBox "Недопустимый код команды", _

vbOKOnly + vbCritical,"Информация"

End If

End Sub

Чтобы указать имя справочного файла проекта следует использовать событие Load главной формы:

Private Sub Form_Load()

On Error Resume Next

'Подсоединение справочного файла

App.HelpFile = App.Path + "samplehlp.hlp"

End Sub

Доступ к справочной информации пользователь программы получает с помощью меню команд. Выбор команды приводит к обращению к процедуре HelpFile.

Например:

Call HelpFile(Me, HELP_FINDER)

Следует запрограммировать закрытие справочной службы при выходе из программы. Событие UnLoad главной формы.