При начальной инициализации приложения указываем файл справки:
App.HelpFile = App.Path & "MyHelp.chm"
В основной форме своей программы добавляем:
'Help Support Declarations
Private Declare Function HtmlHelp Lib "hhctrl.ocx" _
Alias "HtmlHelpA" (ByVal hwndCaller As Long, _
ByVal pszFile As String, ByVal uCommand As Long, _
ByVal dwData As Long) As Long
Private Const HH_HELP_CONTEXT = &HF
Private Const HH_DISPLAY_INDEX = &H2
Private Const HH_DISPLAY_TOC = &H1
Private Const HH_CLOSE_ALL = &H12
' Help support
Private Sub cmdHelpContents_Click() ' Обработка пункта меню Help|Contents
HtmlHelp Me.hWnd, App.HelpFile, HH_DISPLAY_TOC, 0
End Sub
Private Sub cmdHelpIndex_Click() ' Обработка пункта меню Help|Index
HtmlHelp Me.hWnd, App.HelpFile, HH_DISPLAY_INDEX, 0
End Sub
Public Sub HelpContext(ID As Long)
If ID = 0 Then
MsgBox "No help is available for this item.", vbInformation
Else
HtmlHelp Me.hWnd, App.HelpFile, HH_HELP_CONTEXT, ID
End If
End Sub
После этого всю обработку клавиш F1 и кнопок Help перенаправляем в HelpContext
с соответствующим HelpContextID. Этот ID назначаем свой для каждого из диалогов
и важных контролов.