При использовании 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 главной формы.