显示区分上下文的帮助

区分上下文的帮助,在本讨论中,引用的帮助涉及在对话框中的控件支持该用户访问:

  • 通过按 F1 键。

  • 通过右击控件 (这是什么?帮助)。

  • 使用问题标记指针 (这是什么?帮助指针)。

对于每个控件要支持区分上下文的帮助,设置 HelpID 属性设置为 True

如有必要,请添加 htmlhelp.lib 到 附加依赖项 属性,在 链接器 文件夹 Input 属性页在项目中 属性页 对话框中。

区分上下文的帮助的源消息在将 HTML 帮助项目中包含的 .txt 文件中。

创建区分上下文的帮助文本文件

  1. 使用文本编辑器创建 .txt 文件。

  2. 设置主题如下所示:

    .topic 1

    help text for control 1

    .topic 2

    help text for control 2

说明说明

有关更多信息,请参见“模型区分上下文的帮助”中的 HTML 帮助的联机帮助。从 帮助 菜单 (在 HTML help workshop),选择 帮助主题

在创建 .txt 文件后,请将它添加到您的 .hhp 文件的 [文件] 部分。

若要支持资源的帮助在对话框中,必须创建一个二维数组映射控件 ID 帮助 ID (主题数字)。

创建二维数组

  • 在 .cpp 文件中,表示对话框的每个选件类中,添加一个二维数组到选件类的末尾。例如:

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

在这个二维数组的每个匹配一个对话框控件的资源 ID 与主题编号从区分上下文的帮助文本文件。如果不希望特定资源具有什么是为?帮助,请使用– 1。最后此数组对应为 0,0。

F1 到区分上下文的帮助的访问意味着用户可以按 F1,则控件具有焦点访问帮助时。

启用 F1 到区分上下文的帮助的访问

  • 实现 WM_HELPINFO 消息处理程序 (在要 F1 到区分上下文的帮助的访问) 的各对话框选件类并实现处理程序的以下代码:

    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;
    }
    

这是什么?当用户右击控件时,帮助显示控件的帮助。

实现右击什么是为?帮助

  • 实现一个处理程序 (请参见 映射到功能的消息) 在所需的每个对话框选件类的 WM_CONTEXTMENU 消息的哪些为?帮助 (对于对话框中选择 ID 从对象 ID 列表)。实现处理程序的以下代码:

    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 时指定文本文件,必须指定位置信息与为 .txt 文件指定在 .chm .hhp 文件。

如果已经实现 F1 到区分上下文的帮助的访问,可以轻松启用什么是为?指针,使一个问号出现在标题栏,在对话框的右上角。

启用什么是为?帮助问题标记指针

  • 选择对话框上属性的 Extended Styles 选项的 上下文帮助 复选框。

请参见

概念

HTML帮助:您的程序的区分上下文的帮助