VB里实现帮助文件速成
最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。
----在此对帮助文件的编制及如何在程序中编程调用作一详尽介绍。首先介绍第一部分,帮助文件的编写。
----帮助文件的编写步骤:
先编写存有所有帮助信息的帮助源文件RTF文件。
编写帮助项目文件HPJ文件。
对HPJ文件编译,最后生成HLP文件。
帮助源文件RTF文件的编写
----帮助源文件是存有所有帮助信息的,这是一种RTF(RichTextFormat)文件,帮助文件象一本书,由目录及一个个章节组成,各章节之间的跳转是由定义的热点来完成。现在举一具体例子(由目录等五条信息组成)详细说明。
----原始信息由五个章节组成:目录、概述、说明、程序、安装。象前面每一节的标题(“目录”,“概述”,“说明”,“程序”,“安装”)在RTF文件中必须以特有的脚注(即$)明确指定。对每一节还须指定其跳转名(脚注是#,跳转名不能是汉字),以便标识,在这我们给每一节分别取名为:contents,description,explanation,programming,setup,对每一节还可指定其搜索关键字(脚注是K),关键字可以是一个或多个,汉字和英文均可。
----具体操作如下:进入MicrosoftWord中文版,选择:文件/新建,先输入第一节的内容:输入第一节的标题:“目录”,将光标移到“目录”的前面,选择系统菜单的“插入”,选“脚注和尾注”,选“脚注”和“自定义标记”,输入:$符号,这时文档下方出现脚注编辑窗口,光标也自动落在文档下方的脚注编辑窗口中,在光标处接着输入这一节的标题:“目录”,有时看不到文档下方的脚注窗口,这只要将系统菜单中“视图”的“脚注”选上。
----下面定义这一节的跳转名,将光标移到“目录”的前面,选择系统菜单的“插入”,选“脚注和尾注”,选“脚注”和“自定义标记”,输入:#符号,这时文档下方出现脚注编辑窗口,光标也自动落在文档下方的脚注编辑窗口中,在光标处接着输入这一节的跳转名:“contents”(有时看不到文档下方的脚注窗口,这只要将系统菜单中“视图”的“脚注”选上)定义这一节的搜索关健字。将光标移到“目录”的前面,选择系统菜单的“插入”,选“脚注和尾注”,选“脚注”和“自定义标记”,输入:k符号,这时文档下方出现脚注编辑窗口,光标也自动落在文档下方的脚注编辑窗口中,在光标处接着输入这一节的搜索关健字,搜索关健字可以是中文或英文,一个或多个,中间用分号(即;)隔开,这儿我们输入:目录;目次;contents。
----最后定义这一节的顺序号。顺序号相当于一本书中各章节的页码。将光标移到“目录”的前面,选择系统菜单的“插入”,选“脚注和尾注”,选“脚注”和“自定义标记”,输入: 符号,这时文档下方出现脚注编辑窗口,光标也自动落在文档下方的脚注编辑窗口中,在光标处接着输入这一节顺序号,如:0001,0002,0003等。这儿我们输入:0001.
----这样,第一节的脚注标记全部作完。
----第二节的脚注标记作法一样。(第一节和第二节要有分页符,选择系统菜单的“插入”,选“分隔符”,“分页符”)。
----在帮助文件中,当用户在按了绿色的跳转文本,就应该跳转到对应的章节,如何定义一个热点跳转呢?因为我们已经定义了第一节的跳转名,只要将跳转文本与要跳转到的那一节的跳转名联系起来,跳转文本在RTF文件中是带双下划线的文本,以上例操作如下:
----选择系统菜单上的“格式”/“字体”,选择“字体”/“下划线”,选“双线”,然后开始输入热点文本,这儿我们输入“概述”,输入完热点文本,清除双下划线格式,操作:选择系统菜单上的“格式”/“字体”,选择“字体”/“下划线”,选“无”,清除双下划线格式后,紧接着选择隐藏文本格式,输入跳转目的地的跳转名,操作:选择系统菜单上的“格式”/“字体”,选择“字体”/“效果”,选“隐藏”,输入跳转目的地的跳转名,这儿输入“description”,输入完清除隐藏文本格式。清除隐藏文本格式的操作:选择系统菜单上的“格式”/“字体”,选择“字体”/“效果”,将“隐藏”复选框除去。
----如何定义热点弹出说明。它与以上热点跳转文本一样,只不过它是带单下划线的文本。操作如下:选择字符的单下划线格式,输入弹出式热点文本,如上例输入的是“单下划线的指定说明热点”,操作如下:选择系统菜单上的“格式”/“字体”,选择“字体”/“下划线”,选“单线”,然后开始输入热点文本,这儿我们输入“单下划线的指定说明热点”,输入完热点文本,清除单下划线格式,紧接着选择隐藏文本格式,输入跳转目的地的跳转名,这儿是弹出窗口的跳转名:这儿输入“my_pop_up”,输入完清除隐藏文本格式。弹出窗口一节要与其它章节用分页符分开。只要指定跳转名即可。
----我们经常看到的“参阅”、“seealso”弹出窗口就是这样作出来的。
----如何对图形指定热点跳转。在RTF文件中使用图形,可以用语句:{bmc图形文件名},bmc表示图形放在中间,bml表示图形放在左边,bmr表示图形放在右边,图形文件可以是一般的BMP位图和SHG热点跳转图形文件。
----如用户在图形某处按动时,会弹出一个说明窗口。而热点图形.shg文件由.bmp位图文件通过工具软件HotspotEditor编辑而来。HotspotEditor是随VisualBasic(在VB的HC目录下)和VisualFoxpro(在VFP的HELPCOMP目录下)发布的。执行文件名是SHED.EXE。操作:运行SHED.EXE,选File/Open,装入要用到的位图文件。这儿用一人头形位图man.bmp,在图形上拖动,产生一个个热点,双击任一热点区域,出现一对话框,只要在ContextString处输入要跳转或弹出目的地的跳转名。热点类型Type处选取Jump跳转式或Popup弹出式。热点区域边框属性Attribute选取可见Visible或不可见Invisible。在这个例子中ContextString输入eye_popup,Type选取Popup,Attribute选取Invisible(隐去热点区域的边线).
----以d:winwordman.shg文件名存盘,退出SHED.EXE。
----如何产生固定的不滚动标题区域,不滚动区域,在显示特长的信息时很有用,可这样操作:用光标将要不滚动的区域全选上,点取系统菜单上的“格式”/“段落”,选“正文排列”,将“与下段同页”选上。
----就这样,帮助信息源文件所有的工作都已作完,在WORD中将文件以RTF格式存盘。下面进入帮助项目文件HPJ的编辑。
建立帮助项目文件(.HPJ文件)
以一实例说明,语句分号右边是注解
[OPTIONS];这一节的内容并非必须
COMPRESS=0;指示HLP文件不压缩
ERRORLOG=my.err;编译错误存于此文件
REPORT=Yes;编译时报告
CONTENTS=contents;目录跳转名
COPYRIGHT=;版权信息
DEFFONT=,10,0;字体大小
BMROOT=.;指示BMP文件的存放位置,
在同一目录下用空白或“.”否则BMROOT=Drive:Path
HLP=.dxchlp.hlp;表明生成的帮助文件名
[FILES];唯一重要的一节
.Dxchlp.rtf;所用RTF文件名(包括路径)
----[WINDOWS];语法Main="主窗口的标题",(窗口水平位置,垂直位置,宽度,高度),状态,背景颜色(R,G,B),非滚动区域背景颜色(R,G,B),是否总是浮在其它窗口上面(0为False,1为True)例:
----Main=“主窗口标题”,(512,10,512,1000),0,(255,251,240),(192,192,192),0
----;语法:Second=;语法同上面主窗口,例:
----Second=“次级窗口标题”,(10,10,500,1000),0,(254,251,240),(191,192,192),1
----[CONFIG]
----BrowseButtons();加一向前向后按钮
----其实用不着写这么多,最省事的帮助项目文件是这样只有一条语句,其它全是缺省值:
----[FILES];节名称
----Myhelp.rtf;所用RTF文件名(包括路径,如c:winwordMyhelp.rtf)
----以上hpj文件用任何编辑器编辑后以HPJ文件存盘。
对帮助项目文件HPJ进行编译,形成HLP文件
----编译要用编译工具HC.EXE,在VB的HC目录下有HC.EXE,在VFP的HELPCOMP目录下有HC31.EXE和HC35.EXE,任选一个使用。操作:HC文件名,或HC31文件等,如:HC31Myhelp.hpj
--------------------------------------------------------------------------------
----现在介绍第二部分,对帮助文件编程。
----帮助文件的最终目的是要应用到自己程序中。现以最常用的三种开发工具VB,VFP,DELPHI分别举一最简单例子。
VB
----进入VB,选File/NewProject,出现一空白窗体Form1,加一个通用对话框CommondDialog1到Form1,点取MenuEditor,设置一菜单,一级菜单有二项:(Caption分别为:)File,Help,而File的下一级菜单Exit,Help的下一级菜单为Contents,KeyWordsSearch,About,对应的Name属性分别为:mnuFile,mnuHelp,mnuExit,mnuContents,mnuSearch,mnuAbou。假定帮助文件是D:WINWORDDXCHLP.HLP。
----程序代码如下:
PrivateSubForm_Load()
CommonDialog1.HelpFile="d:winworddxchlp.hlp"
EndSub
PrivateSubmnuContents_Click()
WithCommonDialog1
.HelpCommand=cdlHelpContents'cdlHelpContents是显示目录的命令
.ShowHelp
EndWith
EndSub
PrivateSubmnuSearch_Click()
WithCommonDialog1
.HelpCommand=cdlHelpKey'cdlHelpKey是显示关健字搜索的命令
.ShowHelp
EndWith
EndSub
PrivateSubmnuAbout_Click()
aboutform.Show1'以模态显示"关于"窗口
EndSub
PrivateSubmnuExit_Click()
End
EndSub
以上可用调用动态联结库的方法,代码如下:
(1)模块文件:
GlobalConstHELP_CONTENTS=&H3&
GlobalConstHELP_KEY=&H101
DeclareFunctionWinHelpLib"user32"Alias"WinHelpA"
(ByValhwndAsLong,ByVallpHelpFileAsString,ByVal
wCommandAsLong,ByValdwDataAsLong)AsLong'
必须同一行;为WIN95,NT
'DeclareFunctionWinHelpLib"User"(ByValhwndAs
Integer,ByVallpHelpFileAsString,ByValwCommandAs
Integer,dwDataAsAny)AsInteger'必须同一行;为WIN3.X
(2)窗体文件
PrivateSubForm_Load()
App.HelpFile="d:winworddxchlp.hlp"
EndSub
PrivateSubmnuContents_Click()
i=WinHelp(Form1.hwnd,App.HelpFile,HELP_CONTENTS,0)
EndSub
PrivateSubmnuKeySearch_Click()
i=WinHelp(Form1.hwnd,App.HelpFile,HELP_KEY,0)
EndSub->