次の方法で共有


状況依存のヘルプの表示

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

  • F1 キーを押す。

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

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

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

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

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

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

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

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

    .topic 1

    help text for control 1

    .topic 2

    help text for control 2

注意

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

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

  • ダイアログ ボックス プロパティの [Extended Styles] タブの [Context help] をチェックします。

参照

概念

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