アプリケーションのHelpを表示する方法

◆概要

この資料は、Visual Basic 6.0で、アプリケーションのHelpを表示する方法について記載しています。


◆[F1]キーでヘルプを表示するには

アプリケーションのHelpを表示するには、コードを使用する必要はありません。


  1. Visual Basic 6.0のメニューから、[プロジェクトのプロパティ]を選択して[プロジェクトのプロパティ]ダイアログを表示させ、[全般]タブのヘルプファイル名にヘルプファイルのファイル名を設定
  2. フォームオブジェクトのHelpContextIDプロパティにヘルプコンテクスト番号を設定
  3. ヘルププロジェクト(hpj)ファイルの[MAP]セクションでトピックIDとヘルプコンテクスト番号を関連付け
と設定すれば,[F1]キーを押してその画面に対応したヘルプが表示できます.

◆コードで呼び出す方法

ユーザーが作成したアプリケーションのヘルプをコードで表示するには、WinHelpA APIを使います。

WinHelpA API の引数

hWndパラメータは、アプリケーションのフォームのhWndプロパティに設定されます。lpHelpFileパラメータは、起動すべきヘルプファイルの名前を含む文字列です。wCommandパラメータは、この関数を制御するための定義済み定数です。dwDataパラメータは、wCommandの値に応じていくつかの値をとることができます。特に、wCommandがcdlHelpContentに設定されている場合、dwDataの値はヘルプファイルのどのトピックが表示されるかを決定します。


詳しくは、Visual Basic のオンラインヘルプで、HelpCommandプロパティを参照してください。


次の例は、フォームに作成したmenuHelpというメニューをクリックしたとき、ヘルプを表示します。

標準モジュール

Option Explicit

Public Declare Function WinHelp Lib "user32.dll" _
  Alias "WinHelpA" (ByVal hWnd As Long, _
  ByVal lpHelpFile As String, ByVal wCommand As Long, _
  dwData As Any) As Long

'Display topic in ulTopic
Public Const HELP_CONTEXT = &H1&
'Terminate help
Public Const HELP_QUIT = &H2&
'インデックスを表示
Public Const HELP_INDEX = &H3&
Public Const HELP_CONTENTS = &H3&
'Display help on using help
Public Const HELP_HELPONHELP = &H4&
'Set current Index for multi index help
Public Const HELP_SETINDEX = &H5&
Public Const HELP_SETCONTENTS = &H5&
Public Const HELP_CONTEXTPOPUP = &H8&
Public Const HELP_FORCEFILE = &H9&
'キーワードタブを表示
Public Const HELP_KEY = &H101&
Public Const HELP_COMMAND = &H102&
Public Const HELP_PARTIALKEY = &H105&
Public Const HELP_MULTIKEY = &H201&
Public Const HELP_SETWINPOS = &H203&
Public Const HELP_CONTEXTMENU = &HA&
Public Const HELP_FINDER = &HB&
Public Const HELP_WM_HELP = &HC&
Public Const HELP_SETPOPUP_POS = &HD&
Public Const HELP_TCARD = &H8000&
Public Const HELP_TCARD_DATA = &H10&
Public Const HELP_TCARD_OTHER_CALLER = &H11&
Public Const IDH_NO_HELP = 28440
'Control doesn't have matching help context
Public Const IDH_MISSING_CONTEXT = 28441
'Property sheet help button
Public Const IDH_GENERIC_HELP_BUTTON = 28442
Public Const IDH_OK = 28443
Public Const IDH_CANCEL = 2844

標準モジュール

Option Explicit

Private Sub menuHelp_Click()
    Dim tmp As String
    
    Dim HelpFileName As String
    HelpFileName = "test.hlp" 'HLPがEXEと同じディレクトリにある場合
   
    tmp = App.Path
    If Right(tmp, 1) <> "\" Then
        tmp = tmp + "\"
    End If
    tmp = tmp + HelpFileName
    If Dir(tmp) = "" Then
        tmp = HelpFileName
    End If
    App.HelpFile = tmp

    WinHelp Me.hWnd, App.HelpFile, HELP_INDEX, 0

End Sub

Private Sub Form_Unload(Cancel As Integer)
    'プログラム終了時、ヘルプをとじる
    WinHelp Me.hWnd, App.HelpFile, HELP_QUIT, 0
End Sub


▼ページトップへ