一個應用程序不論編制得如何完美,在很多情況下用戶還是會對如何使用它提出問題。 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的說明資料)。