最近在使用微软公司提供的HTML Help Workshop工具包 制作chm帮助文件, 现在总结如下:
一、制作前的HTML文件准备工作
由于chm帮助文件是基于HTML文件特征的,所以前期编写HTML文件的准备工作很重要。 它的每个主题就是一个HTML文件 , 主题文件
可以用任何一个HTML编辑器进行编辑,也可用HTML Help Workshop编辑, 也可以通过Word 97或Word 2000,将Word格式的
主题文件转换成HTML格式。
二、创建项目文件
第一步:点击HTML Help Workshop菜单栏中的“File/New”命令,这时出现“选择新建内容”的对话框,选中“Project”。
第二步:,按“OK”按钮后,将“Convert WinHelp Project”这个选项留空,继续下一步。
第三步:在弹出的"Destination"界面中,点击“Browse”按钮,设置放置项目文件的目录及项目文件名, 如 test,完成后,继续下一
步。
第四步:因为我们已经事先建好了html文件,此时请选择“HTML file”,继续下一步。
第五步:点一下“Add”按钮并加入已经编辑好的主题文件(也就是设置成首页面的HTML文件)。点击“下一步”,最后点击“完成”按
钮,新的项目即已新增完成。 这里也可以不添加, 直接下一步
现在就可以进入HTML Help Workshop工作窗口。在窗口的上方是3个卷标,分别是“Project(项目)”、“Contents(目录)”、
“Index(索引)”。
在“Project”卷标的左侧是7个按钮,它们的功能名称自上而下分别是:“Change project options(改变项目选项)”、
“Add/Remove topic files(添加/删除主题文件)”、“Add/Modify window definitions(添加/修改窗口定义)”、“HtmlHelp
API information(HTML帮助API信息)”、“View HTML source(校验HTML源文件)”、“Save Project Contents and
Index files(保存项目、目录和索引文件)”、“Save all file and Compile(保存全部文件并编译)”。
第六步:点击“Project”编辑窗口下方的“Change Project Options”按钮后,会弹出一个“Options”对话框。在这个对话框的
“General”卷标的“Title”中输入标题“test 帮助文档”,编译后这个标题将出现在chm文件窗口的标题栏中。在“File”卷标中选上
“Automatically create contents file(.hhc) when compiling”。
chm文件的“Search(搜索)”选项允许用户在所有主题文件中搜索字、词或短语,将它们的标题显示出来,而且用醒目的方式显示在
主题中。在 “Compiler”卷标中选上“Compiler full-text search information”,即可支持全文检索功能。
第七步:点击“Save project file and
compile”按钮,虽然此时已经可以观看结果了,不过,我们要再多作一项设定让最后的成品再完整些。
三、创建目录文件
第一步:点击HTML Help Workshop工作窗口的“Contents”卷标,这时系统弹出一个对话框,提示你“项目”还没有关联目录文
件(.hhc),选择“Create a new contents file”,点击“OK”按钮后将创建一个新的目录文件。
第二步:请指定一个新目录文件名和存放路径,点击“保存”后出现目录编辑窗口,目录编辑窗口的左侧有11个按钮。
第三步:根据需要插入标题(类似资源管理器中的目录)或页面(类似资源管理器中某目录下的文件),按下“Insert a
heading(插入标题)”或“Insert a page(插入页面)”按钮,都会弹出“Table of Contents Entry”对话框,在“Entry title”
输入框中输入条目的标题,并根据情况选定对应的主题文件,单击“Entry title”下的“Add”按钮,在弹出的对话框下面的“File or URL”
输入框中 选择在帮助文件中单击该主题时打开的页面,我们在对话框中选择一个.htm文件,最后单击"确定"按钮.
第四步:如果在单击“Insert a page”按钮之前所选择的条目不包含别的条目,也不被别的条目所包含,那么会询问“Do you
want to insert this entry at the beginningof the table of contents?”,选择了“是”会增加起始条目(一级条
目),选择了“否”会增加一个子条目。
标题可以分为多级,要按照制作的内容统一考虑。如果觉得不满意,可以用左侧的箭头进行调整,也可以选定该条目,单击鼠标右键,
不但可以调整,还可以插入标题、主题或目录文件。
四、创建索引文件
索引文件(hhk)也是一个HTML文件,它包含若干个关键词,当用户打开chm文件后,单击索引标签并输入一个关键词后,chm文件
将显示与这个关键词有关的主题的列表,使大家非常方便地找到相关主题。
第一步:点击HTML Help Workshop工作窗口的“Index”卷标,这时系统弹出一个对话框,提示你“项目”还没有关联索引文件
(.hhk),选择“Create a new contents file”,点击“OK”按钮后将创建一个新的索引文件。
第二步:请指定一个新索引文件名和存放路径,点击“保存”后出现索引编辑窗口,索引编辑窗口的左侧有11个按钮。
第三步:单击“Insert a keyWord”按钮,出现“Index Entry”对话框,在“General”选项的“KeyWord”输入框中输入关键词,
再单击“Add”按钮添加与该关键词相关联的主题文件。如果想跳 转到另一个关键词,在“Index Entry”对话框中按“Advance”选项,选中
“Target is Another KeyWord”,再单击“General”选项的“KeyWord”输入框中输入关键词,再单击“Add”按钮添加与要跳转的关键
词相关联的主题文件, 单击“OK”按钮。最后单击“确定”按钮,并按“Save file”进行存盘。
五、最后的设置工作
第一步:选择“Project”卷标,点击“Change Project Options”按钮,在“File”卷标的“Content file”项目中,点击“Browse”
指定为toc.hhc。在“Index file”项目中,点击“Browse”指定为index.hhc。在"Default file"中输入打开帮助文件时的默认界面,我们可
以输入一个.htm文件的路径
第二步:重新点击“Save project file and compile”按钮进行存盘编译。
第三步:最后点击主菜单“View/Compiled file”,通过“Browse”指定该chm文件的目录及文件名即可看到我们的作品了
的确也够简单的了,只要有完整的HTML源文件,激活Html Help Workshop创建一个新的项目文件,将第一个html(通常是
default.htm或index.html)加进项目,存盘并编译就大功告成。同样 的一组HTML文件,放在网站上是一页一页的网页,变成单一的chm
后,则可用作软件辅助说明,而且已经内建了全文检索功能。
上述介绍的只是制作chm帮助文件的基本步骤。但它的功能远非这些,如:可向HTML文件中插入HTML Help ActiveX控件、Java
脚本、弹出式窗口等等。还可将已有的chm文件解压缩变回原来的HTML文件。
六.在应用程序中调用CHM帮助文件.
在vc 中:
方法一: 使用ShellExcute打开, 就跟启动其他程序一样的
ShellExecute(NULL,"open","test.chm",NULL,NULL,SW_SHOWMAXIMIZED);
方法二: 用HTML Help Workshop SDK中的HtmlHelp函数
1. 确认已经安装htmlhelp , 将HTML Help Workshop/include/htmlhelp.h 和HTML Help Workshop/lib/htmlhelp.lib 两个
文件拷贝到vc的项目文件夹中, Add to project 加入htmlhelp.h
2. 加入代码 #include "htmlhelp.h" #pragma comment(lib,"htmlhelp.lib")
HtmlHelp( m_hWnd,"test.chm",HH_DISPLAY_TOPIC,0);
在C#中:
将刚才制作的帮助文件拷贝到你的C#程序的Debug目录下,然后双击菜单中的"帮助"按钮, 添加如下代码:
Help.ShowHelp(this,@"test.chm");
然后为"帮助"菜单添加个快捷键F1,这样在程序运行时,按F1键即可打开帮助文件.
HTML Help Workshop下载: http://msdn.microsoft.com/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp
参考资料: http://topic.csdn.net/t/20020613/16/801118.html
http://blog.csdn.net/zhangyang0402/archive/2007/05/06/1598512.aspx
http://blog.csdn.net/afxapi/archive/2004/12/23/226654.aspx