很多人問起現在的CHM幫助文檔如何作為軟件的熱點敏感幫助,網上搜索的資料也不多,可能是太簡單了吧,呵呵!今天整理了一下,詳細的介紹在VC開發的軟件中對CHM幫助文檔的調用方法以及CHM幫助文檔的制作要求。
一、軟件中對CHM幫助文檔的調用方法
VC中調用CHM幫助必須用API函數HtmlHelp(),此函數在LIB庫函數內,為方便調用,我把它整體打包了,您要做的就是把它放到VC工程所在的目錄,然後包含CHMHelp.h頭文件即可。
系統包含文件如下:
#include "CHMHelp.h"
BOOL CDataDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowContextHelpId(IDH_WJH_0300702025);
return TRUE;
}
上述代碼中IDH_WJH_0300702025為在CHMHelpID.h中定義的敏感幫助的頁面ID,設置了ID後在需要顯示幫助的過程中(一般是用戶按F1)增加如下代碼:
BOOL CMainFrame::OnHelpInfo(HELPINFO* pHelpInfo)
{
HWND hWnd;
if(pHelpInfo->dwContextId > 0)
hWnd = HtmlHelp((HWND)pHelpInfo->hItemHandle,
theApp.m_szHelpFile,
HH_HELP_CONTEXT,
pHelpInfo->dwContextId);
else
hWnd = HtmlHelp((HWND)pHelpInfo->hItemHandle,
theApp.m_szHelpFile,
HH_HELP_CONTEXT,
IDH_WJH_0100000000);
return (hWnd != NULL);
return CMDIFrameWnd::OnHelpInfo(pHelpInfo);
}
上述代碼即響應用戶F1按鍵,若當前顯示界面設置了熱點敏感幫助的頁面ID時,程序將打開CHM幫助文檔並跳轉到ID對應的頁面;若當前顯示界面沒有設置熱點敏感幫助的頁面ID,則顯示軟件幫助缺省的頁面。IDH_WJH_0100000000為軟件的缺省顯示頁面ID。
二、CHM幫助文檔的制作要求
CHM幫助文檔必須包含API文檔信息,包含頁面ID文件和ID對應頁面名稱申明二個文件,格式如下:
CHMHelpID.h 頁面ID文件格式:
#define IDH_WJH_0000000000 0
#define IDH_WJH_0100000000 100000000
#define IDH_WJH_0100100000 100100000
#define IDH_WJH_0100101000 100101000
AliasID.hID對應頁面名稱申明文件格式:
IDH_WJH_0000000000 = 用戶操作手冊.Content\000000000_操 作 手 冊.Htm
IDH_WJH_0100000000 = 用戶操作手冊.Content\100000000_第一部分 系統介紹.Htm
IDH_WJH_0100100000 = 用戶操作手冊.Content\100100000_第一章 主要功能.Htm
IDH_WJH_0100101000 = 用戶操作手冊.Content\100101000_1、基本功能.Htm
IDH_WJH_0100102000 = 用戶操作手冊.Content\100102000_2、高級應用功能.Htm
編制好這兩文件後,包含在HHP工程文件中,用HTML WORK SHOP進行編譯就可以了。 現在網上也有很多軟件可以按照WORD文檔的章節自動生成上述文件,極大的方便了用戶制作軟件熱點敏感幫助。現推薦一款制作CHM的軟件:Word2CHM幫助文檔制作工具,此軟件自動將WORD文檔按照章節轉換成CHM文檔,並自動生成上述兩個文件。您需要做的就是按照第一節介紹的方法在VC下加入代碼編譯軟件即可實現熱點敏感幫助。
本文配套源碼