首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Visual C++ HtmlHelp链接到C++编译的CHM中的特定主题

使用Visual C++ HtmlHelp链接到C++编译的CHM中的特定主题
EN

Stack Overflow用户
提问于 2018-06-12 11:47:42
回答 1查看 444关注 0票数 1

我在这里很困惑。我已经将我的CHM帮助从HtmlHelp工作室迁移到了HelpNDoc。我编译了CHM文件并更新了MFC项目,以直接指向正确的主题:

代码语言:javascript
复制
HtmlHelp((DWORD_PTR)_T("msa-options-publishers-db.html"), HH_DISPLAY_TOPIC);

上面的方法适用于我以前的CHM文件。当我调用此调用时,会发生以下情况:

它找不到它。现在我在这里遇到了困难,因为如果我在IDE (VS2017)中单击VS2017,它会带我到这里。本文提供了一个演示主题的示例:

代码语言:javascript
复制
HWND hwnd =
   HtmlHelp(
            GetDesktopWindow(),
            "c:\\Help.chm::/Intro.htm>Mainwin",
            HH_DISPLAY_TOPIC,
            NULL) ;

上面的HtmlHelp API调用包含4个参数。然而,在我的CDialogEx派生类中,我只有两个参数:

因此,我需要找到一种方法来打开HelpNDoc编译的CHM文件中的任何主题。

更新

在进一步的研究中,我找到了讨论我正在使用的HtmlHelp API调用的主题(在CWinApp类中找到)。它指出:

参数

dwData指定其他数据。使用的值取决于nCmd参数的值。 nCmd指定请求的帮助类型。有关可能的值以及它们如何影响dwData参数的列表,请参阅Windows中关于HTMLHelp API函数的uCommand参数。

因此,我们以这里结束,在这里我们将获得一个指向HH_DISPLAY_TOPIC细节的链接。我们已经绕了一圈。仔细观察,报告指出:

指定已编译帮助(.chm)文件、已编译帮助文件中的特定主题。 若要指定定义的窗口类型,请插入大于(>)字符,后面是窗口类型的名称。

所以我的代码应该还行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-12 12:14:31

你不会相信解决这个问题有多简单!

我用窗口进行了测试:

唯一起作用的是当我使用htm作为后缀而不是html时。请参见:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50816420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档