CHM帮助文件在VB程序中的应用

2005年12月21日 15:26:00

CHM帮助文件在VB程序中的应用
――HTML Help Workshop
作 者:叶帆(http://blog.csdn.net/yefanqiu)

一.工欲利其事,必先利其器――CHM制作之工具
1. 首推微软门下的专门工具HTML Help Workshop,它是制作chm帮助文件最权威、功能最全的工具(但不是最快的工具),下载地址:
http://down1.tech.sina.com.cn/download/downContent/2004-03-16/7463.shtml
2. PowerCHM等一些快速制作chm的帮助文件的程序也是很好的选择,配合HTML Help Workshop的使用,更是如虎添翼。
3. HTML Help Workshop一些汉化软件使用起来,好像有些问题,所以还是推荐使用英文原版。

二.寻根探源――CHM源文件之组成
1. 项目文件(.hhp):类似VB程序中的vbp文件,其内容格式类似ini文件,主要包括如下几部分:
a). [OPTIONS] 基本参数设置:
Compiled file=YFHelp.chm //编译后的chm文件名
Contents file=YFHelp.hhc //目录文件名
Index file=YFHelp.hhk //索引文件名
Title=叶帆帮助 //chm窗口标题
Default Window=main //主窗口,与[WINDOWS]字段下的窗体对应
b). [WINDOWS] 帮助窗口设置:
main="叶帆帮助","YFHelp.hhc","YFHelp.hhk","HTML/YF1.htm","Html/YF1.htm",,,,,0x20,180,0x104E,[100,100,900,700],,,,0,0,0,0
主要包括如下内容:窗口名称、目录文件、索引文件、默认主页、首先页、窗口大小和初始位置。
c). [FILES] 帮助组成文件:
HTML/YF1.htm //针对hhp文件存放位置的相对路径
HTML/YF2.htm
HTML/YF3.htm
d). [TEXT POPUPS] popup弹出帮助的源文件设置:
YFPopups.txt // popup弹出帮助的源文件路径
e). [MAP]映射文件设置:
#include YFheader.h //类似C语言的头文件,主要是一些常数的宏定义
f). [ALIAS] 别名设置:
IDH_HELP1=Html/YF1.htm // IDH_HELP1在YFheader.h有定义
IDH_HELP2=Html/YF2.htm // IDH_HELP2在YFheader.h有定义
IDH_HELP3=Html/YF3.htm // IDH_HELP3在YFheader.h有定义
2.目录文件(.hhc)
该文件定义chm文件的树型目录,类似网页文件,格式如下:
>!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"<
>HTML<
>HEAD<
>meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"<
>!-- Sitemap 1.0 --<
>/HEAD<
>BODY<
>OBJECT type="text/site properties"<
>param name="Window Styles" value="0x10"<
>/OBJECT<
>UL< ? LI/UL控制树的层次
>LI< >OBJECT type="text/sitemap"<
>param name="Name" value="首页"< ? 目录树的选项名
>param name="Local" value="HTML/YF1.htm"< ? 链接的文件名
>/OBJECT<
>LI< >OBJECT type="text/sitemap"<
>param name="Name" value="叶帆帮助"<
>/OBJECT<
>UL<
>LI< >OBJECT type="text/sitemap"<
>param name="Name" value="第一个帮助选项"<
>param name="Local" value="HTML/YF2.htm"<
>/OBJECT<
>LI< >OBJECT type="text/sitemap"<
>param name="Name" value="第二个帮助选项"<
>param name="Local" value="HTML/YF3.htm"<
>/OBJECT<
>/UL<
>/UL<
>/BODY<
>/HTML<
3.索引文件(.hhk)
chm帮助文件,索引选项中索引字段的设定,格式与hhc文件类似。
>!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"<
>HTML<
>HEAD<
>meta name="GENERATOR" content="Microsoft® HTML Help Workshop 4.1"<
>!-- Sitemap 1.0 --<
>/HEAD<
>BODY<
>UL< ? LI/UL控制树的层次
>LI< >OBJECT type="text/sitemap"<
>param name="Name" value="首页"< ? 索引名
>param name="Local" value="HTML/YF1.htm"< ? 链接的文件名
>/OBJECT<
>LI< >OBJECT type="text/sitemap"<
>param name="Name" value="第一个帮助选项"<
>param name="Local" value="HTML/YF2.htm"<
>/OBJECT<
>LI< >OBJECT type="text/sitemap"<
>param name="Name" value="第二个帮助选项"<
>param name="Local" value="HTML/YF3.htm"<
>/OBJECT<
>/UL<
>/BODY<
>/HTML<
4.头文件(.h)
给C语言的头文件别无二致,主要包含一些常数的宏定义
#define IDH_HELP1 1001 ? 对应VB控件的HelpContextID属性
#define IDH_HELP2 1002
#define IDH_HELP3 1003
5.popup文件(.txt)
这是一个很有用的文件,popup帮助弹出的内容就在这里定义,对这个文件同样可以包含一个头文件(.h),它包含常数的宏定义,这样在txt文件中就可以写宏变量了,不过我还是直接建议写相应常数。
.topic 30001 ? 对应VB控件的WhatsThisHelpID属性
哈哈,这是第一条Popup帮助,叶帆的Blog:http://blog.csdn.net/yefanqiu
.topic 30002
哈哈,这是第二条Popup帮助,叶帆的软件:API浏览器、VB源码之友...
.topic 30003
哈哈,这是第三条Popup帮助,叶帆开源:XP窗体界面、串口通信示例...
.topic 30004
哈哈,这是第四条Popup帮助,叶帆的开发团队:Sky Walker(天行者)

三.循序渐进――CHM源文件之制作
头文件、popup文件、索引文件就不用介绍怎么制作了(搞开发的,大家都是聪明人),主要介绍hhp和hhc文件的制作。(此外用到的一些网页文件,请用FrontPage或其它工具软件制作,这里不作介绍)。
1.目录文件(.hhc)的制作
首先先用工具软件做好相关的网页(比如我做了三个简单的网页:YF1.htm、YF2.htm、YF3.htm),然后打开HTML Help Workshop,选择"File"菜单中的"New"选项,在对话框中选择"Table of Contents"(如图1),按"OK"按钮开始新建目录文件。


然后在hhc编辑窗口,添加上已做好的三个网页YF1.htm、YF2.htm、YF3.htm,并添加所需的目录,并调整好相应的目录树型结构,如图2所示:


最后按保存,完成hhc文件的编制。
2.项目文件(.hhp)的制作
第一步:选择"File"菜单中的"New"选项,在对话框中选择"Project"(如图3),按"OK"按钮开始新建项目文件。


第二步:输入hhp文件的路径和文件名(如图4)。


第三步:选择工程文件包含的选项(如图5)。


第四步:添加刚才生成的目录hhc文件(如图6)。


第五步:添加索引hhk文件(如图7)。


第六步:确认完毕后,进入主编辑界面,单击工具条上的添加窗口按钮,添加主窗口(如图8)。


第七步:设置主窗口的标题(如图9)。


第八步:设置初始窗口位置和大小(如图10),其它选项请根据需要,自行设定。


第九步:添加主体文件(如图11)。


第十步:添加接口信息,把头文件、别名信息、Popup文件分别添加(如图12)。


第十一步:最关键一步,单击编译,生成CHM文件,这是编译后的结果,如图13所示:

四.牛刀小试――CHM文件在VB中的应用
1.在VB中新建两个窗体,测试上下文帮助的窗体命名为frmContextTest,测试弹出式帮助的窗体命名为frmPopuTest。
2.设置窗体必要的属性及添加必要代码
a). frmContextTest窗体
WhatsThisButton = False >--要在属性框才能设置成功
WhatsThisHelp = False >--要在属性框才能设置成功
窗体上添加三个控件:text1、List1、Check1,分别设置属性HelpContextID的值为1001、1002、1003(要和头文件中的宏定义一致)。
添加如下代码:
Option Explicit
'测试弹出式帮助
Private Sub Command2_Click()
frmPopupTest.Show
End Sub
'功能描述:在窗体激活事件里设置帮助
Private Sub Form_Activate()
App.HelpFile = App.Path & "/YFHelp.chm"
End Sub
b). frmPopuTest窗体
WhatsThisButton =True >--要在属性框才能设置成功
WhatsThisHelp = True >--要在属性框才能设置成功
窗体上添加六个控件:text1、text2、Combo1、Command1、Label1、Label2,对前四个控件,分别设置属性HelpContextID的值为30001、30002、30003、3004(要和popup文件中的索引号一致)
添加如下代码:
Option Explicit
'在激活事件里,设置帮助文件
Private Sub Form_Activate()
App.HelpFile = App.Path & "/YFhelp.chm::YFpopups.txt"
End Sub
‘初始化
Private Sub Form_Load()
Text2.FontSize = 1
Text2.Width = 1
Text2.Height = 1
End Sub
'单击弹出帮助信息
Private Sub Label2_Click()
Text2.SetFocus
SendKeys "{F1}"
End Sub
3.运行VB,测试一下我们的劳动成果
a).上下文帮助测试(如图14)


b).弹出式帮助测试(如图15)

在Windows XP / VB 6.0环境下测试成功。
源代码下载地址:http://www.bjjr.com.cn/YeFan/SourceCode/yfchmvb.rar



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=558261


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值