我在这里很困惑。我已将我的CHM帮助从HtmlHelp Workshop迁移到HelpNDoc。我编译了CHM文件并更新了我的MFC项目以指向正确的主题:
HtmlHelp((DWORD_PTR)_T("msa-options-publishers-db.html"), HH_DISPLAY_TOPIC);
上述方法适用于我以前的CHM文件。当我调用此调用时,会发生以下情况:
找不到它。现在我在这里遇到了困难,因为如果我在我的IDE(VS2017)中单击F1,它会转到here。本文提供了一个显示主题的示例:
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参数,请参阅uCommand 关于Windows中的HTMLHelp API函数中描述的参数 SDK。
因此,我们最终here向我们提供了有关HH_DISPLAY_TOPIC
的详细信息的链接。我们走了一圈。仔细观察它:
指定已编译的帮助(.chm)文件,或已编译的帮助文件中的特定主题。
要指定已定义的窗口类型,请插入一个大于(>)的字符,后跟窗口类型的名称。
所以我的代码应该还可以。