首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC++ 專案整合 CHM 語境敏感說明:從 API 呼叫到專案建置自動化

     編輯:關於VC++

核心 API:HtmlHelp

VC++ 呼叫 CHM 必須使用 HtmlHelp (位於 htmlhelp.lib/htmlhelp.h):


HWND HtmlHelp(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData);

封裝類 CHMHelp 簡化呼叫:專案放入 CHMHelp.h/.cpp、CHMHelpID.h、AliasID.h 即可使用。

整合步驟

1. 對話框/視窗設定說明 ID


BOOL CDataDlg::OnInitDialog() {
    CDialog::OnInitDialog();
    SetWindowContextHelpId(IDH_WJH_0300702025); // 對應 CHM 主題 ID
    return TRUE;
}

2. 主框架處理 F1 / 說明按鈕


BOOL CMainFrame::OnHelpInfo(HELPINFO* pHelpInfo) {
    HWND hWnd;
    if (pHelpInfo->dwContextId > 0) { // 目前控制項/視窗有設定 ID
        hWnd = HtmlHelp((HWND)pHelpInfo->hItemHandle,
                        theApp.m_szHelpFile,      // CHM 檔路徑
                        HH_HELP_CONTEXT,
                        pHelpInfo->dwContextId);
    } else { // 預設首頁
        hWnd = HtmlHelp((HWND)pHelpInfo->hItemHandle,
                        theApp.m_szHelpFile,
                        HH_HELP_CONTEXT,
                        IDH_WJH_0100000000);
    }
    return (hWnd != NULL);
}

CHM 專案建置必要檔案

CHMHelpID.h — 程式端 ID 定義


#define IDH_WJH_0000000000 0
#define IDH_WJH_0100000000 100000000
#define IDH_WJH_0100100000 100100000
#define IDH_WJH_0100101000 100101000
// ... 依功能模組分層編號

AliasID.h — ID 對應 CHM 內部主題檔案


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

專案檔 (.hhp) 包含上述兩檔


[ALIAS]
#include "AliasID.h"
[MAP]
#include "CHMHelpID.h"

用 HTML Help Workshop 編譯產生 .chm。

自動化工具推薦

Word2CHM:Word 文件依標題層級自動切割產生 HTML、自動生成 CHMHelpID.h、AliasID.h、.hhp,一鍵編譯 CHM。流程:

  1. Word 撰寫文件,使用標題 1/2/3 樣式
  2. Word2CHM 匯入 → 設定輸出資料夾 → 編譯
  3. 產出檔案複製到 VC 專案,重新建置即可

最佳實踐檢查清單

  • [ ] 所有對話框/視窗 OnInitDialog 設定 SetWindowContextHelpId
  • [ ] 主框架覆寫 OnHelpInfo 處理 HH_HELP_CONTEXT
  • [ ] CHMHelpID.h 與 AliasID.h 嚴格同步更新
  • [ ] 專案建置事件自動複製最新 .chm 至輸出目錄
  • [ ] 發布安裝包包含 .chm 並註冊關聯 (可選)

採用此架構,新增說明頁面只需修改 Word → 重新產生 → 重建專案,零手工維護對應關係。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved