我在这里很困惑。我已将我的 CHM 帮助从 HtmlHelp Workshop 迁移到 HelpNDoc。我编译了 CHM 文件并更新了我的 MFC 项目以指向正确的主题:
HtmlHelp((DWORD_PTR)_T("msa-options-publishers-db.html"), HH_DISPLAY_TOPIC);
上述方法适用于我之前的 CHM 文件。当我调用此调用时,会发生以下情况:
它没有找到它。现在我在这里遇到了困难,因为如果我在 IDE (VS2017) 中单击 F1,它会将我带到这里。本文提供了一个显示主题的示例:
HWND hwnd =
HtmlHelp(
GetDesktopWindow(),
"c:\\Help.chm::/Intro.htm>Mainwin",
HH_DISPLAY_TOPIC,
NULL) ;
上述HtmlHelp
API 调用采用 4 个参数。然而,在我的CDialogEx
派生类中,我只有两个参数:
所以我需要找到一种方法来打开我的 CHM 文件中的任何主题,这些主题是用 HelpNDoc 编译的。
更新
在进一步的研究中,我找到了讨论HtmlHelp
我正在使用的 API 调用的主题(在CWinApp
课堂上找到)。它指出:
参数
dwData
指定附加数据。使用的值取决于 nCmd 参数的值。
nCmd
指定请求的帮助类型。有关可能值的列表以及它们如何影响 dwData 参数,请参阅关于 Windows SDK 中的 HTMLHelp API 函数中描述的 uCommand 参数。
所以我们在这里结束了,在那里我们获得了一个关于HH_DISPLAY_TOPIC
. 我们已经绕了一圈。仔细看它说:
指定已编译的帮助 (.chm) 文件,或已编译的帮助文件中的特定主题。
要指定定义的窗口类型,请插入一个大于 (>) 字符,后跟窗口类型的名称。
所以我的代码应该还是没问题的。