アプリケーションのHelpを表示する方法
◆概要
この資料は、Visual Basic 6.0で、アプリケーションのHelpを表示する方法について記載しています。
◆[F1]キーでヘルプを表示するには
アプリケーションのHelpを表示するには、コードを使用する必要はありません。
- Visual Basic 6.0のメニューから、[プロジェクトのプロパティ]を選択して[プロジェクトのプロパティ]ダイアログを表示させ、[全般]タブのヘルプファイル名にヘルプファイルのファイル名を設定
- フォームオブジェクトのHelpContextIDプロパティにヘルプコンテクスト番号を設定
- ヘルププロジェクト(hpj)ファイルの[MAP]セクションでトピックIDとヘルプコンテクスト番号を関連付け
◆コードで呼び出す方法
ユーザーが作成したアプリケーションのヘルプをコードで表示するには、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