天天看點

CHM幫助檔案在VB程式中的應用

CHM幫助檔案在VB程式中的應用

――HTML Help Workshop

一.工欲利其事,必先利其器――CHM制作之工具

1. 首推微軟門下的專門工具HTML Help Workshop,它是制作chm幫助檔案最權威、功能最全的工具(但不是最快的工具),下載下傳位址:

<a href="http://down1.tech.sina.com.cn/download/downContent/2004-03-16/7463.shtml">http://down1.tech.sina.com.cn/download/downContent/2004-03-16/7463.shtml</a>

2. PowerCHM等一些快速制作chm的幫助檔案的程式也是很好的選擇,配合HTML Help Workshop的使用,更是如虎添翼。

3.  HTML Help Workshop一些漢化軟體使用起來,好像有些問題,是以還是推薦使用英文原版。

二.尋根探源――CHM源檔案之組成

1. 項目檔案(.hhp):類似VB程式中的vbp檔案,其内容格式類似ini檔案,主要包括如下幾部分:

a). [OPTIONS] 基本參數設定:

Compiled file=YFHelp.chm       //編譯後的chm檔案名

Contents file=YFHelp.hhc       //目錄檔案名

Index file=YFHelp.hhk          //索引檔案名

Title=葉帆幫助                 //chm視窗标題

Default Window=main            //主視窗,與[WINDOWS]字段下的窗體對應

b). [WINDOWS] 幫助視窗設定:

main="葉帆幫助","YFHelp.hhc","YFHelp.hhk","HTML/YF1.htm","Html/YF1.htm",,,,,0x20,180,0x104E,[100,100,900,700],,,,0,0,0,0

主要包括如下内容:視窗名稱、目錄檔案、索引檔案、預設首頁、首先頁、視窗大小和初始位置。

c). [FILES] 幫助組成檔案:

HTML/YF1.htm             //針對hhp檔案存放位置的相對路徑

HTML/YF2.htm  

HTML/YF3.htm

d). [TEXT POPUPS] popup彈出幫助的源檔案設定:

YFPopups.txt               // popup彈出幫助的源檔案路徑

e). [MAP]映射檔案設定:

#include YFheader.h        //類似C語言的頭檔案,主要是一些常數的宏定義

f). [ALIAS] 别名設定:

IDH_HELP1=Html/YF1.htm   // IDH_HELP1在YFheader.h有定義

IDH_HELP2=Html/YF2.htm    // IDH_HELP2在YFheader.h有定義

IDH_HELP3=Html/YF3.htm    // IDH_HELP3在YFheader.h有定義

2.目錄檔案(.hhc)

該檔案定義chm檔案的樹型目錄,類似網頁檔案,格式如下:

&lt;!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"&gt;

&lt;HTML&gt;

&lt;HEAD&gt;

&lt;meta name="GENERATOR" content="Microsoft&amp;reg; HTML Help Workshop 4.1"&gt;

&lt;!-- Sitemap 1.0 --&gt;

&lt;/HEAD&gt;

&lt;BODY&gt;

&lt;OBJECT type="text/site properties"&gt;

 &lt;param name="Window Styles" value="0x10"&gt;

&lt;/OBJECT&gt;

&lt;UL&gt;                                             ? LI/UL控制樹的層次

 &lt;LI&gt; &lt;OBJECT type="text/sitemap"&gt;

  &lt;param name="Name" value="首頁"&gt;              ? 目錄樹的選項名

  &lt;param name="Local" value="HTML/YF1.htm"&gt;     ? 連結的檔案名

  &lt;/OBJECT&gt;

  &lt;param name="Name" value="葉帆幫助"&gt;

&lt;UL&gt;

  &lt;param name="Name" value="第一個幫助選項"&gt;

  &lt;param name="Local" value="HTML/YF2.htm"&gt;

  &lt;param name="Name" value="第二個幫助選項"&gt;

  &lt;param name="Local" value="HTML/YF3.htm"&gt;

&lt;/UL&gt;

&lt;/BODY&gt;

&lt;/HTML&gt;

3.索引檔案(.hhk)

chm幫助檔案,索引選項中索引字段的設定,格式與hhc檔案類似。

  &lt;param name="Name" value="首頁"&gt;              ? 索引名

4.頭檔案(.h)

給C語言的頭檔案别無二緻,主要包含一些常數的宏定義

#define IDH_HELP1 1001        ? 對應VB控件的HelpContextID屬性

#define IDH_HELP2 1002

#define IDH_HELP3 1003

5.popup檔案(.txt)

這是一個很有用的檔案,popup幫助彈出的内容就在這裡定義,對這個檔案同樣可以包含一個頭檔案(.h),它包含常數的宏定義,這樣在txt檔案中就可以寫宏變量了,不過我還是直接建議寫相應常數。

.topic 30001                    ? 對應VB控件的WhatsThisHelpID屬性 

.topic 30002

哈哈,這是第二條Popup幫助,葉帆的軟體:API浏覽器、VB源碼之友...

.topic 30003

哈哈,這是第三條Popup幫助,葉帆開源:XP窗體界面、序列槽通信示例...

.topic 30004

哈哈,這是第四條Popup幫助,葉帆的開發團隊:Sky Walker(天行者)

三.循序漸進――CHM源檔案之制作

頭檔案、popup檔案、索引檔案就不用介紹怎麼制作了(搞開發的,大家都是聰明人),主要介紹hhp和hhc檔案的制作。(此外用到的一些網頁檔案,請用FrontPage或其它工具軟體制作,這裡不作介紹)。

1.目錄檔案(.hhc)的制作

首先先用工具軟體做好相關的網頁(比如我做了三個簡單的網頁:YF1.htm、YF2.htm、YF3.htm),然後打開HTML Help Workshop,選擇“File”菜單中的“New”選項,在對話框中選擇“Table of Contents”(如圖1),按“OK”按鈕開始建立目錄檔案。

然後在hhc編輯視窗,添加上已做好的三個網頁YF1.htm、YF2.htm、YF3.htm,并添加所需的目錄,并調整好相應的目錄樹型結構,如圖2所示:

最後按儲存,完成hhc檔案的編制。

2.項目檔案(.hhp)的制作

第一步:選擇“File”菜單中的“New”選項,在對話框中選擇“Project”(如圖3),按“OK”按鈕開始建立項目檔案。

第二步:輸入hhp檔案的路徑和檔案名(如圖4)。

第三步:選擇工程檔案包含的選項(如圖5)。

第四步:添加剛才生成的目錄hhc檔案(如圖6)。

第五步:添加索引hhk檔案(如圖7)。

第六步:确認完畢後,進入主編輯界面,單擊工具條上的添加視窗按鈕,添加主視窗(如圖8)。

第七步:設定主視窗的标題(如圖9)。

第八步:設定初始視窗位置和大小(如圖10),其它選項請根據需要,自行設定。

第九步:添加主體檔案(如圖11)。

第十步:添加接口資訊,把頭檔案、别名資訊、Popup檔案分别添加(如圖12)。

第十一步:最關鍵一步,單擊編譯,生成CHM檔案,這是編譯後的結果,如圖13所示:

四.牛刀小試――CHM檔案在VB中的應用

1.在VB中建立兩個窗體,測試上下文幫助的窗體命名為frmContextTest,測試彈出式幫助的窗體命名為frmPopuTest。

2.設定窗體必要的屬性及添加必要代碼

a). frmContextTest窗體

WhatsThisButton = False    &lt;--要在屬性框才能設定成功

WhatsThisHelp = False     &lt;--要在屬性框才能設定成功

窗體上添加三個控件:text1、List1、Check1,分别設定屬性HelpContextID的值為1001、1002、1003(要和頭檔案中的宏定義一緻)。

添加如下代碼:

Option Explicit

'測試彈出式幫助

Private Sub Command2_Click()

    frmPopupTest.Show

End Sub

'功能描述:在窗體激活事件裡設定幫助

Private Sub Form_Activate()

    App.HelpFile = App.Path &amp; "/YFHelp.chm"

b). frmPopuTest窗體

WhatsThisButton =True     &lt;--要在屬性框才能設定成功

WhatsThisHelp = True      &lt;--要在屬性框才能設定成功

窗體上添加六個控件:text1、text2、Combo1、Command1、Label1、Label2,對前四個控件,分别設定屬性HelpContextID的值為30001、30002、30003、3004(要和popup檔案中的索引号一緻)

'在激活事件裡,設定幫助檔案

     App.HelpFile = App.Path &amp; "/YFhelp.chm::YFpopups.txt"

‘初始化

Private Sub Form_Load()

     Text2.FontSize = 1

     Text2.Width = 1

     Text2.Height = 1

'單擊彈出幫助資訊

Private Sub Label2_Click()

    Text2.SetFocus

    SendKeys "{F1}"

3.運作VB,測試一下我們的勞動成果

a).上下文幫助測試(如圖14)

b).彈出式幫助測試(如圖15)

<a href="http://p.blog.csdn.net/images/p_blog_csdn_net/yefanqiu/23649/o_01.gif"></a>

在Windows XP / VB 6.0環境下測試成功。

繼續閱讀