HTML Help 使用戶能在一個幫助窗口中使用工具棒、查看目錄和幫助主題。目前,有兩種方法創建 Tri-pane 類型的 HTML Help 窗口:
使用 HTML Help Workshop 創建窗口
使用 HTML Help API 編程創建窗口
本文將介紹如何使用這兩種方法創建Tri-pane HTML Help 窗口。
使用預定義窗口
在 HTML Help Workshop環境中很容易創建和修改工程的窗口定義,有關窗口定義的其它信息,請參考微軟知識庫文章:Q189084 HOWTO: Create a Tri-pane Window with HTML Help Workshop
本文假設在你的html' target='_blank'>應用程序開發工具為 Visual C++,那么要在自己的程序中使用HTML Help幫助,必須借助于HTML Help提供的 API 函數;要調用這些 API 函數,就必須包含 htmlhelp.h 文件,并且將庫文件 hhctrl.lib 或者 htmlhelp.lib 鏈接到自己的程序代碼中。只要你安裝了HTML Help Workshop環境,這些文件存放在 HTML Help Workshop下的 Include 和 Lib 目錄中。
在下面的示范代碼中,sample.chm是一個編譯好的HTML Help幫助文件,其中有一個叫“ mywindow”的窗口定義,下面的代碼示范了如何在一個 MFC 程序中調用 HTML Help API函數:
// CMainFrame message handler
void CMainFrame::OnHelp()
{
// display the topic "intro.htm" in the window defined
// in the HTML Help Workshop
HtmlHelp(m_hWnd,"sample.chm::intro.htm>mywindow",
HH_DISPLAY_TOPIC,0);
}
使用 HTML Help API
為了創建 three-pane 窗口, 必須首先創建和填寫HH_WINTYPE結構。 HH_WINTYPE結構在HtmlHelp.h中定義,詳細說明參見HTML Help Workshop文檔。 以下是一個例子:
Sample Code
///////////////////////////////////////////
// Create an HH_WINTYPE structure.
{
HH_WINTYPE m_hhWinType;
// Initialize all structure members to zero.
ZeroMemory(&m_hhWinType, sizeof(HH_WINTYPE));
// Define a custom message for use with idNotify.
// You are responsible for ensuring that this ID
// does not conflict with other Windows/MFC messages.
#define IDD_HELPTAB 69999
// Set the size of the structure.
m_hhWinType.cbStruct = sizeof(HH_WINTYPE);
// Set up the properties of the HTML window:
// tripane window, sync topic with index/TOC, and so forth.
// NOTE: fsValidMembers - HHWIN_PARAM_PROPERTIES must be set.
m_hhWinType.fsWinProperties = HHWIN_PROP_TRI_PANE |
HHWIN_PROP_AUTO_SYNC;
// Put BACK, HOME, FORWARD, and EXPAND buttons on toolbar pane.
// NOTE: fsValidMembers - HHWIN_PARAM_TB_FLAGS must be set.
m_hhWinType.fsToolBarFlags = HHWIN_BUTTON_BACK |
HHWIN_BUTTON_HOME | HHWIN_BUTTON_FORWARD |
HHWIN_BUTTON_EXPAND;
// The file is in the right pane. The full path is not needed.
m_hhWinType.pszFile = "intro.htm";
// Full Paths or CHM locations of various files (if used).
// To specify that a file is within a CHM, use the following
// syntax: "CHMFileName.chm::FileName.xxx"
// Home Page:
m_hhWinType.pszHome = "c:mypathintro.htm";
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答