说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

怎样在VB中调用.chm帮助文件?

编辑:说三道四文库 发布时间:2018-05-26 07:01
HTML文档下载 WORD文档下载 PDF文档下载
我想在VB中调用.chm帮助文件,请高手指点。按一下command控件就显示自己编的.chm帮助文件。
如何调用chm帮助文件
我把帮助做成chm格式,请问如何在VB中调用?  
---------------------------------------------------------------  
 
在VB中调用CHM  帮助的几种方法    
 
一个应用程序不论编制得如何完美,在很多情况下用户还是会对如何使用它提出问题。  Visual  Basic  提供了对两种不同帮助系统的支持:传统的  Windows  帮助系统  (WinHelp)和新的  HTML  帮助(CHM帮助)。当我们制作好帮助文件后,就需要在程序的适当位置编写代码进行调用,本文将讨论几种在程序中调用CHM帮助文件的方法。    
方法一 使用F1键:  
这种方法最简单,只需如下代码即可:  
Private  Sub  Form_Load()    
App.HelpFile  =  app.path  &  "\help.chm"  '调用与主程序同目录下的help.chm帮助文件,按F1键调用  
End  Sub  
 
方法二  使用SendKeys方法:  
Private  Sub  Form_Load()    
App.HelpFile  =  app.path  &  "\help.chm"    
End  Sub    
private  Sub  CmdHelp_Click()    
SendKeys  "{F1}"  '发送击键到活动窗口    
End  Sub  
 
方法三  使用Shell函数:  
private  Sub  CmdHelp_Click()  
Shell  "hh.exe  help.chm",  vbNormalFocus  'help.chm为指定的帮助文件,可包含路径。  
End  Sub  
 
方法四  使用HtmlHelp函数:  
先声明如下API:  
Option  Explicit  
Private  Declare  Function  HtmlHelpA  Lib  "hhctrl.ocx"  (ByVal  hwndCaller  As  Long,  ByVal  pszFile  As  String,  ByVal  uCommand  As  Long,  ByVal  dwData  As  Long)  As  Long    
'hwndCaller指定调用者的窗口,pszFile指定要调用的文件,uCommand是发送给  HtmlHelp的命令,dwData是uCommand的参数。    
然后在过程中调用:  
private  Sub  CmdHelp_Click()  
dim  i  as  string  
i  =  app.path  &  "\help.chm"  '用变量i记录与主程序同目录下的help.chm帮助文件  
HtmlHelpA  Form1.hWnd,  i,  0,  0  
End  Sub  
 
方法五  使用ShellExecute函数:  
先声明如下API:  
Option  Explicit  
'声明API函数用于异步打开一个文档  
Private  Declare  Function  ShellExecute  Lib  "shell32.dll"  Alias  "ShellExecuteA"  (ByVal  hwnd  As  Long,  ByVal  lpOperation  As  String,  ByVal  lpFile  As  String,  ByVal  lpParameters  As  String,  ByVal  lpDirectory  As  String,  ByVal  nShowCmd  As  Long)  As  Long  
Private  Const  SW_SHOWNORMAL  =  1  
然后在过程中调用:  
private  Sub  CmdHelp_Click()  
dim  a  as  long  
Dim  b  As  String  
b  =  App.Path  &  "\help.chm"  '用变量b记录与主程序同目录下的help.chm帮助文件  
a  =  ShellExecute  (0,  "open",  b,  "",  "",  SW_SHOWNORMAL)  
End  Sub  
以上五种方法各有优缺点,从代码的简单上讲,建议使用第二种方法。从功能上讲,建议使用第五种方法,因其不只用于打开CHM帮助文件,还可用同样的格式打开、打印或查找一个文件或文档(参见该API的说明资料)。    


               问题解决,请结贴!
可以在工程/属性/通用页框中添加你的帮助文件
'******************************************* Html help 声明
Public Const HH_DISPLAY_TOPIC = &H0
Public Const HH_SET_WIN_TYPE = &H4
Public Const HH_GET_WIN_TYPE = &H5
Public Const HH_GET_WIN_HANDLE = &H6
Public Const HH_DISPLAY_TEXT_POPUP = &HE   ' Display string resource ID or
                                          ' text in a pop-up window.
Public Const HH_HELP_CONTEXT = &HF         ' Display mapped numeric value in
                                          ' dwData.
Public Const HH_TP_HELP_CONTEXTMENU = &H10 ' Text pop-up help, similar to
                                          ' WinHelp's HELP_CONTEXTMENU.
Public Const HH_TP_HELP_WM_HELP = &H11     ' text pop-up help, similar to
                                          ' WinHelp's HELP_WM_HELP.

Public Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long
'*******************************************

'调用*.chm中的某个页面

Private Sub cmd_style_Click()
    Dim hwndHelp As Long
    hwndHelp = HtmlHelp(hwnd, App.Path & "\MakeScript.chm::/eb_style.htm#1", HH_DISPLAY_TOPIC, 0)
End Sub
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘