1. 程式人生 > >HtmlHelp呼叫chm幫助文件使用

HtmlHelp呼叫chm幫助文件使用

               

htmlhelp.exe下載下來後按照提示安裝,大家都會,我就不再多說了。安裝成功後,你可以在開始選單了看到HTML HELP WORKSHOP一項,下面有兩個快捷方式一個是HTML HELP IMAGE EDITOR是編輯圖片的,另一個就是HTML HELP WORKSHOP就是我們需要的程式了。單擊執行是個英文的介面,不過裡面的專案很少,不會英文的也不用擔心,大部分選單都有一看就明白的快捷工具條。下面就跟著我一步步製作一個簡單的幫助系統吧:
1.建立新的工程
在工具欄上點"new"按鈕,在彈出的對話方塊中選擇"project",按"ok"會出現一個嚮導,照著嚮導進行就可完成。嚮導第一頁意思為可以把老式的幫助檔案(.rtf,.cnt等等)轉換為html help workshop的格式。如果你不想讓自己以前的功夫白費,就選中"CONVERT WINHELP PROJECT"複選框,把你以前的工程加進來,否則直接進入下一步,為你將要建的工程指定路徑和檔名,完成工作進入下一步,嚮導會詢問你有無html格式文件的目錄檔案(*.hhc)、html格式文件的索引檔案(*.hhk)和*.htm檔案需要加入工程,作為新建的工程目錄檔案和索引檔案現在是沒有的,你可以在此將html檔案加入,不加等會加也行。我們直接進入下一步完成新建的工程檔案,看到如圖一所示的介面。
2.新增html檔案
你如果在新建工程時已加上就可以跳過這步。在圖示介面的project選項卡中點選"add/remove topic files",出現topic files 視窗,用"add"向工程新增你已編好的html檔案,用"remove"刪除不需要的檔案。完成工作後點"save all project files and complied"進行編譯,點工具欄上的"view compile"就可以看到一個沒有目錄和索引的幫助了。

3.新增幫助的目錄檔案
在圖示的選項卡中點"content",在彈出的對話方塊中選"GREAT A NEW CONTENT FILE",指定檔名並儲存。點左側的"INSERT A HEADING",插入一個主題,取個適當的名字,將屬於這個主題的HTML問件依次用"INSERT A PAGE"插入到當前主題下,用"↓"、"↑"、"←"、"→"調整各個頁面在同一主題下的次序和相互間的層次結構。
4.新增幫助的關鍵字索引
使用索引可以根據關鍵字迅速地定位到需要使用的頁面。在圖示的選項卡中點"INDEX",在彈出的對話方塊中選"GREAT A NEW INDEX FILE",指定檔名並儲存。用"INSERT A KEYWORD"插入選定的關鍵字,並與對應的HTML頁面相關連,一個關鍵字可以對應一個頁面,也可對應多個頁面。該介面下同樣可以調整各個關鍵字之間的次序和層次關係,並且可以對關鍵字排序和察看原始檔,為使用者提供方便。
5.定製視窗
當以上幾步都完成後,一個幫助檔案就基本完成了。但是執行一看,幫助視窗沒有標題,而且工具欄上的一些快捷工具你想要的沒有,不要的卻有一些。也沒有書籤和搜尋兩
個選項卡,還是不太滿意,不過別急下面就做。在"PROJECT"選項卡介面中有個"ADD/MODIFY WINDOW DEFINITIONS"的按鈕就是為你準備著這步工作的。單擊就會出現一個如圖二所示的介面,有很多選項卡,待我一一道來。
a. General
有個WINDOW TYPE的編輯框,你點ADD就會出現個對話方塊讓你輸入視窗的名字,你為你的幫助視窗取個名字,以後有用。在下面的TITLE BAR TEXT的編輯框中填上你的幫助視窗的標題。
b. Buttons
WINDOW TYPE中應該顯示你剛才為你的視窗區的名字,下面的許多個複選框就是幫助檔案執行時在工具欄上顯示的那一排按鈕,你可以在你需要的按鈕前打勾選中。
c. Position
在此你可以設定幫助視窗首次出現的位置和大小,一般可以使用預設值。
d. Files
在此你可以設定你幫助視窗的目錄檔案,索引檔案,預設頁面等等。
e. Navigation Pane
當你選中Window With Navigation Pane, Topic Pane ,And Button這個複選框時,下面就會出現多個複選框,不選中,你的幫助程式就不會出現工具欄和目錄、索引等的選項
卡。選中它,在它下面有個Tabs的幀,你可以看到Default  tab,有個下拉列表框決定幫助檔案執行時首次定位在目錄、索引還是搜尋。在列表框下面有三個複選框,Search
 Tab選中就在幫助中會出現搜尋選項卡,Advanced是進一步搜尋的,Favorites Tab就是書籤選項卡,可以對你常用的幫助頁面進行快速的定位。
f. Styles 和Extended Styles對你的幫助檔案的視窗型別進行定義,可以用預設的。
6.製作幫助檔案的搜尋
在上步添加了搜尋選項卡後,如果不建立全文搜尋,這個選項卡就不起作用。你可以切換到Project選項卡,點左側工具欄"Change Project Options"按鈕,出現"Option"對話
框,在其中的選項卡"Compiler"下選中"Compiler full-text search information"前的複選框就可以了。
7.對映幫助檔案到你的程式的構件
一個好的程式當用戶在使用遇到困難時,按下F1快捷鍵就會出現與之相關的幫助主題,在程式中的處理下面再講,在做幫助檔案時,需要怎麼做呢?
首先需要新增兩個檔案一個為文字檔案(.txt),另一個是標頭檔案(.h),指定檔名和路徑生成後,在文字檔案中的內容格式如下:
[topic]  [topic ID]  [help topic]
topic 就是你在第3步製作的幫助主題,topic ID是你的程式控制元件在幫助中的唯一識別符號,後面的help topic可以忽略,那是在幫助模式下你點下該控制元件出現的說明。示範如下

幫助一 IDH_FORM 第一個視窗
幫助二 IDH_EDITBOX
在標頭檔案中的內容格式如下:
#define IDH_FORM 1
#define IDH_EDITBOX 2
其中define表示巨集定義,IDH_FORM就是你在文字中定義的topic ID,數字1就是你的幫助檔案Compile時所對映的唯一識別符號,在程式中使用。
寫好上面的兩個檔案後,就可以加進工程了,在圖一的介面上有個"HtmlHelp  API Information"按鈕,單擊出現如下的對話方塊(圖三):
共有三個選項卡分別是"Map","Alias","Text Pop-ups"在"Map"選項卡下有"Header file"和"Remove"兩個按鈕,點"Header file"把剛才寫好的那個標頭檔案加入,"Remove"是
用來刪除標頭檔案用的,點"Alias"選項卡會在右邊出現四個按鈕分別是"Add", "Edit","Remove","Include",點"Add"會出現如下所示的對話方塊(圖四),在第一個編輯框內填
上上面定義的topic ID,第二個時個列表框,可以選擇topic ID對應的頁面檔案,第三個編輯框是註釋,可以不填。填完後點"Text Pop-ups",會在右邊出現三個按鈕分別是
"Header file"," Text file","Remove",分別點""Header file"," Text file"將上面寫好的文字檔案和標頭檔案加進去。就大功告成了。
當你全部完成以上工作時,儲存編譯後在你的工程目錄下出現個以chm結尾的檔案,你的幫助就已完成了一大半,此時該幫助檔案可以獨立運行了。如何將你的幫助加入你的程
序中呢,請接著向下看:
二、與vb、vc、pb、vfp程式整合
在程式中呼叫chm型別的幫助要使用htmlhelp這個API函式,它已被整合到hhctrl.ocx中,當你安裝了html help workshop後,就已安裝這個控制元件。
1.在vb中的呼叫方法
a. 幫助主題對映
在選單條的工程一項最底部有個工程的屬性,點擊出現如下的對話方塊(圖五)在幫助檔名那一欄中填上你剛剛精心製作好的幫助檔案檔名,對於每個控制元件而言都有個屬性為
HelpContextID,就在屬性視窗中可以看到,屬性視窗可以按"F4"調出,在其中填上上文定義的數字識別符號1、2、3等等,當你的程式執行時,按下"F1"就可以得到相關的幫助了

當然你還可以在程式開始執行時,使用下面的語句app.helpfile="hh.chm"設定幫助檔案路徑,推薦採用此方法。
b.在vb中呼叫這個函式的宣告如下
Public Declare Function htmlhelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal h"Remove","Include",點"Add"會出現如下所示的對話方塊(圖四),在第一個編輯框內填上上面定義的topic ID,第二個時個列表框,可以選擇topic ID對應的頁面檔案,第三個編輯框是註釋,可以不填。填完後點"Text Pop-ups",會在右邊出現三個按鈕分別是
"Header file"," Text file","Remove",分別點""Header file"," Text file"將上面寫好的文字檔案和標頭檔案加進去。就大功告成了。
當你全部完成以上工作時,儲存編譯後在你的工程目錄下出現個以chm結尾的檔案,你的幫助就已完成了一大半,此時該幫助檔案可以獨立運行了。如何將你的幫助加入你的程
序中呢,請接著向下看:
二、與vb、vc、pb、vfp程式整合
在程式中呼叫chm型別的幫助要使用htmlhelp這個API函式,它已被整合到hhctrl.ocx中,當你安裝了html help workshop後,就已安裝這個控制元件。
1.在vb中的呼叫方法
a. 幫助主題對映
在選單條的工程一項最底部有個工程的屬性,點擊出現如下的對話方塊(圖五)在幫助檔名那一欄中填上你剛剛精心製作好的幫助檔案檔名,對於每個控制元件而言都有個屬性為HelpContextID,就在屬性視窗中可以看到,屬性視窗可以按"F4"調出,在其中填上上文定義的數字識別符號1、2、3等等,當你的程式執行時,按下"F1"就可以得到相關的幫助了

當然你還可以在程式開始執行時,使用下面的語句app.helpfile="hh.chm"設定幫助檔案路徑,推薦採用此方法。
b.在vb中呼叫這個函式的宣告如下
Public Declare Function htmlhelp Lib "hhctrl.ocx" Alias "HtmlHelpA" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dw
Data As Long) As Long放在模組宣告中。需要用到的常數為
Public Const HH_DISPLAY_INDEX=2
Public Const HH_DISPLAY_TOC =1
Public Const HH_DISPLAY_TOPIC  =0
你可以在選單幫助下加上如下的程式:
dim aa as long
aa = htmlhelp(me.hwnd, "hh.chm::/01.htm>hh", HH_DISPLAY_TOPIC, 0)
或者
dim aa as long
aa = htmlhelp(me.hwnd, "hh.chm::/01.htm", HH_DISPLAY_TOC, 0)
其中hh.chm是你生成的chm檔案,01.htm是你chm檔案中包含的html檔案的名字,hh是你的幫助的視窗的名字程式開始執行時就顯示目錄的選項卡,如果想讓程式一開始就顯示索引選項卡你可以用
下面的程式辦到:
Dim aa As Long
aa = htmlhelp(Me.hWnd, "hh.chm", HH_DISPLAY_INDEX, 0)
2.在vc中的呼叫方法
在vc中的函式原型為HWND HtmlHelp(HWND    hwndCaller,LPCSTR  pszFile,UINT    uCommand,DWORD   dwData) ;呼叫時需要包含Htmlhelp.lib 和 Htmlhelp.h這兩個檔案,
預設路徑是C:\Program Files\HTML Help Workshop\Lib和C:\Program Files\HTML Hel
p Workshop\Include,你可以把這兩個檔案拷到vc可以辨認的目錄下在vc程式里加上#i
nclude "htmlhelp.h",並在選單project下的setting中的link下加入Htmlhelp.lib
你在你的程式中加入下列語句之一就可以呼叫該幫助檔案了:
HWND helpwnd=HtmlHelp(GetSafeHwnd( ),"hh.chm::/01.htm>hh",HH_DISPLAY_TOPIC,NULL) ;
HWND helpwnd=HtmlHelp(GetSafeHwnd( ),"hh.chm::/01.htm",HH_DISPLAY_TOC,NULL);
HWND helpwnd=HtmlHelp(GetSafeHwnd( ),"hh.chm",HH_DISPLAY_INDEX,(DWORD)"幫助一") ;
3、在 Visual Foxpro 中呼叫 HtmlHelp 幫助檔案
Visual Foxpro 6.0 支援 WinHelp 和 HtmlHelp ,在 Visual Foxpro 中呼叫 HtmlHelp 幫助檔案也需要宣告 HTML 幫助檔案的路徑和名稱,用以下命令:Set Help To hh.chm
然後 , 在需要呼叫 HTML 幫助檔案的地方輸入下列語句:
Help即可呼叫 Set Help To 指定的幫助檔案。
4、在 Power Builder 中呼叫 HtmlHelp 幫助檔案
在 Power Builder 中呼叫 HtmlHelp 幫助檔案需要用 HtmlHelp API 函式 HtmlHelpA(),這個函式駐留在 HtmlHelp ActiveX 控制元件 Hhctrl.ocx 中。因此,首先要宣告全域性或區域性外部函式,語法如下:
Function Long HtmlHelpA (long hwnd ,string lpHelpFile , long wCommand,string dwData) Library "hhctrl.ocx"
其中 , 引數 hwnd 是視窗的控制代碼, lpHelpFile 是 HTML 幫助檔案的路徑和名稱, wCommand 表明執行的操作, dwData 是 wCommand 引數所需要的值。然後, 在需要呼叫
HTML 幫助檔案的地方輸入下列語句 , 語法如下:
htmlhelpA( hwnd, "hh.chm", 0, 0)