次の方法で共有


状況依存のヘルプの表示

更新 : 2007 年 11 月

ここで説明する状況依存のヘルプとは、ダイアログ ボックスのコントロールに関するヘルプのサポートのことです。状況依存のヘルプには、以下のいずれかの方法でアクセスできます。

  • F1 キーを押す。

  • コントロールを右クリックする (ポップ ヒント ヘルプ)。

  • ヘルプ ポインタ (ポップ ヒント ヘルプのポインタ) を使用する。

状況依存のヘルプをサポートするには、各コントロールの HelpID プロパティを True に設定します。

必要に応じて、プロジェクトの [プロパティ ページ] ダイアログ ボックスの [リンカ] フォルダの [入力] プロパティ ページで、[追加する依存関係] プロパティに htmlhelp.lib を追加します。

状況依存のヘルプのソース情報は、HTML ヘルプ プロジェクトの .txt ファイルに格納されます。

状況依存のヘルプのテキスト ファイルを作成するには

  1. テキスト エディタを使用して .txt ファイルを作成します。

  2. トピックの形式を次のように設定します。

    .topic 1

    help text for control 1

    .topic 2

    help text for control 2

2bk8zwb3.alert_note(ja-jp,VS.90).gifメモ :

詳細については、HTML ヘルプのオンライン ドキュメントの「Designing context-sensitive help」を参照してください。HTML Help Workshop の [Help] メニューの [Help Topics] を選択します。

作成した .txt ファイルを .hhp ファイルの [Files] セクションに追加します。

ダイアログ ボックスのコントロールに対するヘルプをサポートするには、コントロール ID をヘルプ ID (トピック番号) に割り当てる 2 次元配列を作成する必要があります。

2 次元配列を作成するには

  • .cpp ファイル内で、ダイアログ ボックスを表す各クラスに対して、クラスの最後に 2 次元配列を追加します。次に例を示します。

    static DWORD myarray[] = {
       IDC_CHECK1, 1,
       IDC_BUTTON1, 2,
       IDC_EDIT1, (DWORD)-1,
       0,0
    };
    

2 次元配列の各エントリでは、ダイアログ ボックス コントロールのリソース ID と状況依存のヘルプのテキスト ファイルのトピック番号が対応しています。ポップ ヒント ヘルプの不要なリソースには、「–1」を指定します。この配列の最後のペアは、0,0 になります。

F1 キーによる状況依存のヘルプへのアクセスとは、コントロールにフォーカスがあるときにユーザーが F1 キーを押すとヘルプにアクセスできるという意味です。

F1 キーによる状況依存のヘルプへのアクセスを有効にするには

  • F1 キーによる状況依存のヘルプへのアクセスを有効にする各ダイアログ ボックス クラスに WM_HELPINFO メッセージのハンドラを実装し、そのハンドラに対して次のコードを実装します。

    BOOL CMyDlg::OnHelpInfo(HELPINFO* pHelpInfo)
    {
       BOOL bRet = TRUE;
    
       if (pHelpInfo->iContextType == HELPINFO_WINDOW)
       {
          HWND hwnd = ::HtmlHelp(
             (HWND)pHelpInfo->hItemHandle,
             _T("my_chm.chm::/ctrlhlp.txt"),
             HH_TP_HELP_WM_HELP,
             (DWORD)(LPVOID)myarray);
          bRet = (NULL != hwnd);
       }
    
       return bRet;
    }
    

ポップ ヒント ヘルプでは、コントロールを右クリックしたときに、そのコントロールに関するヘルプが表示されます。

右クリックによるポップ ヒント ヘルプを実装するには

  • オブジェクトの [ID] ボックスでダイアログ ボックスの ID を選択し、ポップ ヒント ヘルプを有効にする各ダイアログ ボックス クラスに WM_CONTEXTMENU メッセージのハンドラを実装します。「関数へのメッセージの割り当て」を参照してください。 そのハンドラに対して次のコードを実装します。

    void CMyDlg::OnContextMenu(CWnd* pWnd, CPoint point)
    {
       UNREFERENCED_PARAMETER(point);
    
       ::HtmlHelp(
          pWnd->GetSafeHwnd(),
          _T("my_chm.chm::/ctrlhlp.txt"),
          HH_TP_HELP_CONTEXTMENU,
          (DWORD)(LPVOID)myarray);
    }
    

.chm ファイルを指定する場合は、プロジェクトの作業ディレクトリを指定します。作業ディレクトリのパス (既定では、プロジェクト ディレクトリ) については、[プロパティ ページ] ダイアログ ボックスの [デバッグ] タブを参照してください。状況依存のヘルプを含む .chm ファイルにテキスト ファイルを指定する場合は、その .chm ファイルの .hhp ファイルの .txt ファイルに対して指定した情報と同じパス情報を指定する必要があります。

F1 キーによる状況依存のヘルプへのアクセスが既に実装されていると、ポップ ヒント ヘルプのポインタを簡単に有効にできます。このポインタを有効にすると、ダイアログ ボックス上部にあるタイトル バーの右端に疑問符 (?) が表示されます。

ポップ ヒント ヘルプのポインタを有効にするには

  • ダイアログ ボックス プロパティの [その他] の [Context help] を [Ture] にします。

参照

概念

HTML ヘルプ : プログラムの状況依存のヘルプ