请问在打开一个chm帮助文件的同时如何将文件内容定位到指定的章节位置

ccj2326051096 2017-11-17 11:06:28
请问在打开一个chm帮助文件的同时如何将文件内容定位到指定的章节位置?
现在用了两种方式去打开文件:
1.ShellExecute(NULL, L"open", L".\\CHM.CHM", NULL, NULL, SW_SHOWMAXIMIZED);
2.::HtmlHelp(this->GetSafeHwnd(),str,HH_DISPLAY_TOPIC,NULL);
但是不知道该如何将文件定位到指定位置,请高手不吝赐教!!!!
...全文
1627 22 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
pdyinotia 2017-11-23
  • 打赏
  • 举报
回复
感谢楼主 Doc2CHM不错
赵4老师 2017-11-21
  • 打赏
  • 举报
回复
引用 20 楼 ccj2326051096 的回复:
(⊙﹏⊙)话说我现在想要结帖怎么总是提示分配分数与总分不符啊,我分数加和正好是100啊!!!!
要么是你,要么是CSDN不识数。
ccj2326051096 2017-11-19
  • 打赏
  • 举报
回复
(⊙﹏⊙)话说我现在想要结帖怎么总是提示分配分数与总分不符啊,我分数加和正好是100啊!!!!
ccj2326051096 2017-11-19
  • 打赏
  • 举报
回复
问题解决了!@tajon1226 @zgl7903 谢谢两位的建议!给了我很多的启发! 最后的解决方法,通过Doc2CHM将word转换成chm文件,并且可以生成xxx.htm文件。在生成的xxx.hhc文件中有要查找的章节目录! 利用::HtmlHelp(NULL, L"C:\\Users\\ccj\\Desktop\\Help\\Help.chm", HH_DISPLAY_TOPIC, (DWORD)L"Help\\outline_6.htm");//Help\\outline_6.htm章节路径 来实现章节的定位! 除了Doc2CHM将word转换成chm之外,也可以通过自己手动的按照想要显示的顺序排列文件,先将文件转换成htm格式在利用其他的方式将其转换为chm文件~~~~~
ccj2326051096 2017-11-19
  • 打赏
  • 举报
回复
@tajon1226 你好 你说ID可以自己去修改 那我该如何修改呢 我用文本工具打开 都是乱码啊 ! 另外我用了另种方式::HtmlHelp(GetSafeHwnd(), L".\\OutPut.CHM::/3定义.htm", HH_DISPLAY_TOC, NULL);,我看有人说这种方式也可以定位章节,可是我用了这种方式打开文件后显示无法访问此页!!!请问有人知道这是怎么回事吗????
走好每一步 2017-11-19
  • 打赏
  • 举报
回复
winchm “主题选项”-右键id winchm “主题选项”-右键id winchm “主题选项”-右键id winchm “主题选项”-右键id winchm “主题选项”-右键id winchm “主题选项”-右键id
走好每一步 2017-11-19
  • 打赏
  • 举报
回复
走好每一步 2017-11-19
  • 打赏
  • 举报
回复
winchm winchm winchm winchm winchm
走好每一步 2017-11-18
  • 打赏
  • 举报
回复
直接用windows开发的一款chm阅读器的库 好像我下载那里有源码,不过是c++ builder的,但是关于chm跳转的代码是MFC也可以用的。
ccj2326051096 2017-11-18
  • 打赏
  • 举报
回复
@smwhotjay 2楼 你好 请问您能具体点说嘛 另外我要打开的是chm文件而并非是html网页 是在mfc中使用的!!
smwhotjay 2017-11-18
  • 打赏
  • 举报
回复
html定位到指定的章节位置 是用锚记 xxx.htm#mark1
走好每一步 2017-11-18
  • 打赏
  • 举报
回复
winchm “主题选项”-右键id
ccj2326051096 2017-11-18
  • 打赏
  • 举报
回复
怎么没人弄过这类的东西吗?自己顶一顶!!!!~~~~~
走好每一步 2017-11-18
  • 打赏
  • 举报
回复
context id 是自己管理的,你编辑chm的时候可以修改。 你喜欢的话,可以用代码修改chm工程文件,弄个enum来映射context id更方便。
ccj2326051096 2017-11-18
  • 打赏
  • 举报
回复
@tajon1226 你好 我现在的问题是 我在将Word通过EasyChm转换成chm文件之后 我不知道该如何去获取他的contextid 另外我看网上有人是这样做的::HtmlHelp(this->GetSafeHwnd(),L".\\CHM.CHM::/第一章 软件概述.htm",HH_DISPLAY_TOPIC,NULL);,通过”::/第一章 软件概述.htm“这句话来定位具体的章节,可是我在通过EasyChm将文档转换为chm之后并没有发现子章节的.htm啊。不知道这是因为什么呢?是软件不对还是操作的问题啊?
走好每一步 2017-11-18
  • 打赏
  • 举报
回复
http://blog.csdn.net/augusdi/article/details/7448281 其实度娘都有相关文档的,自己多找找就可以了。
走好每一步 2017-11-18
  • 打赏
  • 举报
回复
chm每个页面有contextid的,你用chm编译器编过就知道了,默认是1000开始。 引入这个静态库hhctrl.lib #include <htmlhelp.h> ::HtmlHelp(NULL, chmFileName, HH_HELP_CONTEXT, id);
zgl7903 2017-11-18
  • 打赏
  • 举报
回复
应该可以用 ShellExecute 打开 hh.exe -mapid https://www.cnblogs.com/larson/archive/2012/06/15/2550396.html
ccj2326051096 2017-11-18
  • 打赏
  • 举报
回复
@zgl7903  你好 在你给我发的链接中关于定位到具体的某一个章节是利用这句话path="mk:@MSITStore:"+p+"\\help\\"+filename+"::/"+opName+".htm";中的opName+".htm";吧。但是我想问一下 ,我利用EasyChm生成的chm文件并没有关于具体某个章节的.htm文件啊,只有整个文件的.htm请问一下这是怎么回事呢?? 换句话说我该怎么做才能得到这个.htm呢??
ccj2326051096 2017-11-18
  • 打赏
  • 举报
回复
@zgl7903 你好 我是mfc的开发环境 你这个好多我都没法用啊
加载更多回复(2)

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧