产生HLP文件 首先需要两个工具:产生RTF超文本格式文件的字处理软件MS Word 6.0和Windows HELP 编译程序HC.EXE(或HC31.EXE),后一个工具在VB中已经提供。 将HELP文件连接到应用程序中 HELP文件完成之后,才算完成了准备工作,重要的是还要把生成的HELP文件连接到应用程序当中,这样才能产生在线帮助。一般书中都介绍利用Windows中的API接口函数WINHELP的方法进行连接,其实VB本身已提供了至少两种方法可以轻松地将帮助文件连接到应用程序中去。下面分别介绍。 Const winCommand=100 ’常量设置 当程序运行时,把焦点移到任一控件(按钮或文本框)上,再按下F1键,就可以? 当前焦点的在线帮助。 Const KEY F1=H70 也可以利用关键字来指定帮助信息,则程序修改如下: Const KEY_F1=H70 同样,在程序运行过程中,把焦点移到任一控件(按钮或文本框)上,再按下F1键,就可以得到当前焦点的在线帮助。
Windows操作系统所提供的在线帮助功能十分强大,在某个关键字上按下F1键,Windows就能将该关键字的有关帮助信息显示出来,同时提供与其相关的词的信息。其实,在Visual Basic(以下简称VB)的应用程序中也可以很容易地实现Windows风格的在线帮助。
Windows操作系统提供的在线帮助工具软件可完全设计VB的在线帮助系统,主要有两个步骤:第一是必须产生一个含有想要显示的帮助信息的HLP文件;第二是将代码加入到VB的应用程序中,以调用Windows风格的帮助文件。
使用字处理软件MS Word 6.0,产生一个包括帮助文字和图形的文档。通过应用适当的格式代码(如通过加脚注#、K、$、+等)后,可给标题赋予标识符,为HELP的Search命令指定使用的关键字词,指定浏览顺序等,然后存成RTF格式。几个HELP文档组合产生一个在线帮助项目文件*.HPJ,它将包括帮助文本在内的RTF文档名字通知给HELP编译器。指定在线帮助项目文件的名字*.HPJ,运行HELP编译程序。若编译成功,则可以产生一个HLP文件。
1.利用各控件本身的HelpContextID属性
在VB4.0中,几乎每个控件都有一个HelpContextID属性。通过设置各控件的HelpContex tID属性就可以轻松地将帮助文件与应用程序相连。
例如:在窗体Form1上放置两个控件:按钮Command1和文本框Text1,并编程如下:
Const winText=200
Sub Form—Load()
App.HelpFile=DY.HLP
Command1.HelpContextID=winCommand
Text1.HelpContextID=winText 帮助文件的名字,在当前目录下
End Sub
2.利用VB4.0本身提供的控件Common Dialog Boxes(通用对话框)
VB提供了一组基于Windows的标准通用对话框界面,可直接通过通用对话框工具,在窗体上创建。为使通用对话框工具在工具箱中存在,必须在项目窗口中加入COMMDLG.VBX文件且在Windows目录的SYSTEM子目录中要有文件COMMDLG.DLL。
当Action属性值为6时,可在窗体上得到一个标准的Help窗口显示。该帮助对话框可用于在界面上制作标准Help对话框,用户对该对话框进行操作,可提供应用程序的在线帮助。但该窗口不能制作应用程序的帮助文件,只能将已制作并存好的帮助文件从磁盘中提取出来,并与界面连接起来,达到显示并检索帮助信息的目的。
与Help窗口有关的属性如下:
(1)HelpCommand:用于指定Help帮助类型,即帮助信息命令。可用vbHelpKey给此属性赋值,那么Help窗口可显示用Keyword关键字指定的内容的帮助。帮助的命令属性为常量值,存于CONSTANT.TXT常量文件中,以vbHelp开头,通过为该属性赋值,规定帮助窗口以什么方式显示帮助信息。
(2)HelpFile:用于指定Help文件名,即找到帮助文件,再从文件中找到相应内容,显示在Help窗口中。
(3)HelpKey:用于指定帮助信息的内容,用关键字(Keyword)赋给HelpKey属性,那么帮助窗口中即显示出该关键字指定内容的帮助信息。
(4)HelpContext:帮助信息的上下文为HelpTopic指定上下文句柄(Context ID),一般与HelpCommand=HELP_CONTEXT一起使用,指定显示HelpTopic。
如果用此种方式,那么上例中程序变化如下:
Sub Form_Load()
CommonDialog1.HelpCommand=vbHelpContext
CommonDialog1.HelpFile=DY.HLP
End Sub
Sub Command1_KeyDown(KeyCode As Integer,Shift As Integer)
If KeyCode=KEY_F1 Then
CommonDialog1.HelpContext=100
CommonDialog1.Action=6
End If
End Sub
Sub Text1_KeyDown(KeyCode As Integer,Shift As Integer)
If KeyCode=KEY_F1 Then
CommonDialog1.HelpContext=200
CommonDialog1.Action=6
End If
End Sub
Sub Form_Load()
CommonDialog1.HelpCommand=vbHelpKey
CommonDialog1.HelpFile=DY.HLP
End Sub
Sub Command1_KeyDown(KeyCode As Integer,Shift As Integer)
If KeyCode=KEY—F1 Then
CommonDialog1.HelpKey=Command
CommonDialog1.Action=6
End If
End Sub
Sub Text1—KeyDown(KeyCode As Integer,Shift As Integer)
If KeyCode=KEY_F1 Then
CommonDialog1.HelpKey=Text
CommonDialog1.Action=6
End If
End Sub