添加对帮助的支持
为 Visual Basic 应用程序添加帮助实际上是非常简单的。您所要做的仅仅是设置一个属性,HelpFile(并且,当然还要编写并编译帮助文件),使用户能够在按下 F1 键或从菜单中请求帮助时显示帮助。另一个属性是 HelpContextID,可以通过设置它为应用程序中的任何用户界面元素提供与上下文有关的帮助主题。挂接帮助的过程对 WinHelp 和 HTML 帮助来说本质上是相同的。HelpFile 属性
App 对象的 HelpFile 属性用于指定应用程序使用的帮助文件的文件名。它必须是有效的 WinHelp (.hlp) 或 HTML 帮助 (.chm) 文件。如果该文件不存在,则会产生错误。要设置 HelpFile 属性,请按照以下步骤执行: 选择“工程”菜单中的“工程属性”,以打开“过程属性”对话框。
在“通用”选项卡的“帮助文件名”字段中,输入应用程序帮助文件(.hlp 或 .chm) 的路径和文件名。 
也可以用编程方式设置 HelpFile 。下面的代码将指定与应用程序的可执行文件在同一目录下的 HTML 帮助文件:Private Sub Form_Load()
   App.HelpFile = App.Path & "\foo.chm"
End SubErrObject 对象也有一个 HelpFile 属性,使您能够为错误消息指定不同的帮助文件。例如,如果有多个应用程序共享相同的错误消息,则可以将错误消息的帮助存入一个帮助文件中,这样就能够在每个应用程序中通过 Err.Helpfile 调用了。HelpContextID 属性
HelpContextID 属性用于将用户界面元素(例如控件、窗体或菜单)与帮助文件中的某个主题链接起来。HelpContextID 属性必须是与 WinHelp (.hlp) 或 HTML (.chm) 文件中的某个主题的 Context ID 匹配的长整数。例如,可以在 TextBox 的 HelpContextID 属性中输入 10000。当用户选定 TextBox 并按下 F1 键时,Visual Basic 就会在由应用程序的 HelpFile 属性指定的帮助文件中查找 Context ID 为 10000 的主题。如果找到了相应的帮助主题,将打开“帮助”窗口并显示该主题;否则,将产生错误并显示帮助文件的缺省主题。应当使用唯一的 HelpContextID 来匹配帮助文件中的每一个帮助主题。在某些情况下,如果某些对象共享一个通用的帮助主题,则可能需要为多个对象赋相同的 HelpContextID。没有必要为窗体中的每个控件输入 HelpContextID。如果用户在 HelpContextID 为 0 (缺省值)的控件上按下 F1 键,Visual Basic 将会为该控件的容器查找有效的 HelpContextID。要为控件或窗体赋一个 HelpContextID,请按照以下步骤执行: 选定要输入 HelpContextID 的控件或窗体。
在“属性”窗口中双击 HelpContextID,并输入有效的长整数。 
记录输入的值,以便为相关帮助主题的上下文标识符使用相同的值。注意 对于 CommonDialog 控件,可能还有其它一些控件,该属性的名称是 HelpContext 而不是 HelpContextID。要为菜单赋一个 HelpContextID,请按照以下步骤执行: 在“工具”菜单中选择“菜单编辑器”。
选择需要输入 HelpContextID 的菜单项。
在“选择 HelpContextID”框中输入有效的长整数。 
记录输入的值,以便能够为相关帮助主题的上下文标识符使用相同的值。HelpContextID 还能够用如下方法以编程方式输入:Private Sub Form_Load()
   Command1.HelpContextID = 12345
   MenuHelp.HelpContextID = 23456
   Err.HelpContext = 34567
End Sub提示 如果有多个帮助主题,可能在输入 HelpContextID 之前确定一个编号计划会有所帮助。为应用程序中的每个窗体或主要的元素赋予不同的编号范围,例如,第一个窗体用 1000 – 1999,第二个用 2000 – 2999,依此类推。

解决方案 »

  1.   

    Const HELP_COMMAND = &H102&
    Const HELP_CONTENTS = &H3&
    Const HELP_CONTEXT = &H1
    Const HELP_CONTEXTPOPUP = &H8&
    Const HELP_FORCEFILE = &H9&
    Const HELP_HELPONHELP = &H4
    Const HELP_INDEX = &H3
    Const HELP_KEY = &H101
    Const HELP_MULTIKEY = &H201&
    Const HELP_PARTIALKEY = &H105&
    Const HELP_QUIT = &H2
    Const HELP_SETCONTENTS = &H5&
    Const HELP_SETINDEX = &H5
    Const HELP_SETWINPOS = &H203&
    Private Declare Function WinHelp Lib "user32.dll" Alias "WinHelpA" (ByVal hWndMain As Long, ByVal lpHelpFile As String, ByVal uCommand As Long, dwData As Any) As Long
    'uCommand 可引用上面的常数;dwData 与uCommand参数对应,整形值或文字。
    Private Sub ReturnHelp()
       WinHelp Me.hwnd, "C:\Windows\help\common.hlp", HELP_CONTENTS, ByVal 0
       '或使用索引关键字:HELP_KEY
       WinHelp hwnd, "C:\Windows\help\common.hlp", HELP_KEY, "说明")
    End Sub
      

  2.   

    to harp:
    你很无聊!
      

  3.   

    什么无聊?
    我是问那个打开的命令怎么写。OPEN *.HLP?
      

  4.   

        
    CSDN首页 | 新闻聚焦 | 共享软件 | 俱乐部 | 开发文档 | 专家门诊 | 招聘求职 | Linux园地 | 程序员杂志 
    --------------------------------------------------------------------------------
     
    我要回复 | 我感兴趣 | 打印贴子 | 推荐给朋友 | 关闭窗口  
    主  题:绝对简单,绝对给分!!!
    作  者:harp
    所属论坛:Visual Basic
    问题点数:20
    回复次数:7
    发表时间:2001-10-18 14:01:17
     
      
      各位大侠,小弟有个简单问题求教,怎样用VB打开一个帮助文件?(*.HLP) 
    回复贴子: 
    回复人: ganzhiruogy(方竹) (2001-10-18 14:22:34)  得0分 
    添加对帮助的支持
    为 Visual Basic 应用程序添加帮助实际上是非常简单的。您所要做的仅仅是设置一个属性,HelpFile(并且,当然还要编写并编译帮助文件),使用户能够在按下 F1 键或从菜单中请求帮助时显示帮助。另一个属性是 HelpContextID,可以通过设置它为应用程序中的任何用户界面元素提供与上下文有关的帮助主题。挂接帮助的过程对 WinHelp 和 HTML 帮助来说本质上是相同的。HelpFile 属性
    App 对象的 HelpFile 属性用于指定应用程序使用的帮助文件的文件名。它必须是有效的 WinHelp (.hlp) 或 HTML 帮助 (.chm) 文件。如果该文件不存在,则会产生错误。要设置 HelpFile 属性,请按照以下步骤执行: 选择“工程”菜单中的“工程属性”,以打开“过程属性”对话框。
    在“通用”选项卡的“帮助文件名”字段中,输入应用程序帮助文件(.hlp 或 .chm) 的路径和文件名。 
    也可以用编程方式设置 HelpFile 。下面的代码将指定与应用程序的可执行文件在同一目录下的 HTML 帮助文件:Private Sub Form_Load()
      App.HelpFile = App.Path & "\foo.chm"
    End SubErrObject 对象也有一个 HelpFile 属性,使您能够为错误消息指定不同的帮助文件。例如,如果有多个应用程序共享相同的错误消息,则可以将错误消息的帮助存入一个帮助文件中,这样就能够在每个应用程序中通过 Err.Helpfile 调用了。HelpContextID 属性
    HelpContextID 属性用于将用户界面元素(例如控件、窗体或菜单)与帮助文件中的某个主题链接起来。HelpContextID 属性必须是与 WinHelp (.hlp) 或 HTML (.chm) 文件中的某个主题的 Context ID 匹配的长整数。例如,可以在 TextBox 的 HelpContextID 属性中输入 10000。当用户选定 TextBox 并按下 F1 键时,Visual Basic 就会在由应用程序的 HelpFile 属性指定的帮助文件中查找 Context ID 为 10000 的主题。如果找到了相应的帮助主题,将打开“帮助”窗口并显示该主题;否则,将产生错误并显示帮助文件的缺省主题。应当使用唯一的 HelpContextID 来匹配帮助文件中的每一个帮助主题。在某些情况下,如果某些对象共享一个通用的帮助主题,则可能需要为多个对象赋相同的 HelpContextID。没有必要为窗体中的每个控件输入 HelpContextID。如果用户在 HelpContextID 为 0 (缺省值)的控件上按下 F1 键,Visual Basic 将会为该控件的容器查找有效的 HelpContextID。要为控件或窗体赋一个 HelpContextID,请按照以下步骤执行: 选定要输入 HelpContextID 的控件或窗体。
    在“属性”窗口中双击 HelpContextID,并输入有效的长整数。 
    记录输入的值,以便为相关帮助主题的上下文标识符使用相同的值。注意 对于 CommonDialog 控件,可能还有其它一些控件,该属性的名称是 HelpContext 而不是 HelpContextID。要为菜单赋一个 HelpContextID,请按照以下步骤执行: 在“工具”菜单中选择“菜单编辑器”。
    选择需要输入 HelpContextID 的菜单项。
    在“选择 HelpContextID”框中输入有效的长整数。 
    记录输入的值,以便能够为相关帮助主题的上下文标识符使用相同的值。HelpContextID 还能够用如下方法以编程方式输入:Private Sub Form_Load()
      Command1.HelpContextID = 12345
      MenuHelp.HelpContextID = 23456
      Err.HelpContext = 34567
    End Sub提示 如果有多个帮助主题,可能在输入 HelpContextID 之前确定一个编号计划会有所帮助。为应用程序中的每个窗体或主要的元素赋予不同的编号范围,例如,第一个窗体用 1000 – 1999,第二个用 2000 – 2999,依此类推。
     
    回复人: xiali() (2001-10-18 14:36:05)  得0分 
    Const HELP_COMMAND = &H102&
    Const HELP_CONTENTS = &H3&
    Const HELP_CONTEXT = &H1
    Const HELP_CONTEXTPOPUP = &H8&
    Const HELP_FORCEFILE = &H9&
    Const HELP_HELPONHELP = &H4
    Const HELP_INDEX = &H3
    Const HELP_KEY = &H101
    Const HELP_MULTIKEY = &H201&
    Const HELP_PARTIALKEY = &H105&
    Const HELP_QUIT = &H2
    Const HELP_SETCONTENTS = &H5&
    Const HELP_SETINDEX = &H5
    Const HELP_SETWINPOS = &H203&
    Private Declare Function WinHelp Lib "user32.dll" Alias "WinHelpA" (ByVal hWndMain As Long, ByVal lpHelpFile As String, ByVal uCommand As Long, dwData As Any) As Long
    'uCommand 可引用上面的常数;dwData 与uCommand参数对应,整形值或文字。
    Private Sub ReturnHelp()
      WinHelp Me.hwnd, "C:\Windows\help\common.hlp", HELP_CONTENTS, ByVal 0
      '或使用索引关键字:HELP_KEY
      WinHelp hwnd, "C:\Windows\help\common.hlp", HELP_KEY, "说明")
    End Sub
     
    回复人: harp() (2001-10-18 14:41:18)  得0分 
    给两位加分了,谢谢!  
    回复人: Marshall(ladybug) (2001-10-18 14:41:41)  得0分 
    ShellExecute  
    回复人: harp() (2001-10-18 14:47:25)  得0分 
    没有那么复杂,如果只是打开一个帮助文件呢?我在菜单中选中"帮助",然后帮助文件就打开了?  
    回复人: Marshall(ladybug) (2001-10-18 14:59:08)  得0分 
    to harp:
    你很无聊!
     
    回复人: harp() (2001-10-18 15:20:33)  得0分 
    什么无聊?
    我是问那个打开的命令怎么写。OPEN *.HLP?   
    --------------------------------------------------------------------------------
     
    我要回复:(请您对您的言行负责,遵守中华人民共和国有关法律、法规,尊重网上道德)   
    返回问题 | 关闭窗口   
       
     
               
    美达美简介 广告服务 英语步步高 程序员大本营 百联美达美科技有限公司  版权所有 
     
      

  5.   

    使用 ShowHelp 方法显示帮助文件
    可用 CommonDialog 控件的 ShowHelp 方法显示帮助文件。要使用 ShowHelp 方法显示帮助文件 设置 HelpCommand 和 HelpFile 属性。
    用 ShowHelp 方法显示指定的帮助文件。 
    在单击“Command1”命令按钮时,下列代码将显示指定的帮助文件:Private Sub Command1_Click()
       '将 Cancel 设置为 True。
       CommonDialog1.CancelError = True
       On Error GoTo ErrHandler
       '设置 HelpCommand 属性
       CommonDialog1.HelpCommand = cdlHelpForceFile
       '指定帮助文件。
       CommonDialog1.HelpFile = "c:\Windows\Cardfile.hlp"
       '显示 Windows 帮助引擎。
       CommonDialog1.ShowHelp
       Exit SubErrHandler:
       '用户按下了“取消”按钮。
       Exit Sub
    End Sub