• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 在VC6.0中使用新一代幫助系統

    發表于:2007-07-14來源:作者:點擊數: 標簽:
    楊 倫--單 延 明--童 恒 建 ---- HTML Help Workshop 是Microsoft 比 較 新 的 開 發 工 具( 以 往 是WinHelp), 只 在VB 6.0 和VC 6.0 以 后 的 版本中支持,在其他 開發 工 具 中 怎 樣 使 用 未 見 報 道。 在VC 6.0 中 也 沒 有 說 明 怎 樣 設 計 菜 單
    楊 倫--單 延 明--童 恒 建

    ---- HTML Help Workshop 是Microsoft 比 較 新 的 開 發 工 具( 以 往 是WinHelp), 只 在VB 6.0 和VC 6.0 以 后 的 版本中支持,在其他開發 工 具 中 怎 樣 使 用 未 見 報 道。 在VC 6.0 中 也 沒 有 說 明 怎 樣 設 計 菜 單 上 下 文 敏 感 幫 助。 本 文 把 我 們 的 經 驗 介 紹 給 大 家, 相 信 大 家 只 要 使 用 就 會 喜 歡。

    一、 在 應 用 程 序 中 包 含HTML Help 支 持 文 件
    ---- 1. 在 項 目 中 包 含htmlhelp.lib 庫 文 件
    ---- (1) 在Visual C++ 的 菜 單 欄 中, 選 擇"Project"*"Settings" 命 令, 彈 出"Settings" 對 話 框。

    ---- (2) 在"Settings" 對 話 框 中, 選 擇"Link" 選 項 卡, 然 后 在"category" 組 合 框 中 選 擇"Input"。

    ---- (3) 在"Additional library path" 編 輯 框 中, 指 定htmlhelp.lib 文 件 所 在 的 路 徑。

    ---- 2. 在 項 目 中 包 含htmlhelp.h 頭 文 件

    ---- (1) 打 開"Settings" 對 話 框。

    ---- (2) 在"Settings" 對 話 框 中, 選 擇"C/C++" 選 項 卡, 然 后 在"category" 組 合 框 中 選 擇"Preprocessor"。

    ---- (3) 在"Additional include directories" 編 輯 框 中, 指 定htmlhelp.h 文 件 所 在 的 路 徑。

    ---- 3. 在 項 目 中 加 入htmlhelp.lib 庫 文 件

    ---- (1) 打 開"Settings" 對 話 框。

    ---- (2) 在"Settings" 對 話 框 中, 選 擇"Link" 選 項 卡, 然 后 在"category" 組 合 框 中 選 擇"General"。

    ---- (3) 在"Object"*"libraries module" 編 輯 框 中, 加 入htmlhelp.lib 庫 文 件。

    ---- 4. 在 項 目 的stdafx.h 文 件 中 插 入 一 命 令 行

    ---- 插 入 的 命 令 行 為:

    #include < htmlhelp.h >

    ---- 注: 當 使 用AppWizard 創 建 一 個MFC(.exe) 項 目 時, 在 第4 步 中 不 要 選 擇 上 下 文 敏 感 幫 助(Context-sensitive help) 校 驗 框。
    二、 顯 示 幫 助
    ---- 只 要 在 您 想 顯 示 的 消 息 處 理( 菜 單 或 按 鈕) 函 數 中 調 用 這 個 函 數 即 可:HtmlHelp(NULL, "MsiHtml0716.chm::/welcome.htm", HH_DISPLAY_TOPIC, 0), 其"MsiHtml0716.chm" 是 編 譯 后 的 幫 助 文 件,"welcome.htm" 是 幫 助 系 統 的 主 頁。
    三、 實 現 對 話 框 上 下 文 敏 感 幫 助
    ---- 1. 在 幫 助 項 目 中 創 建 上 下 文 敏 感 幫 助 文 本 文 件
    ---- 格 式 如 下:

    .topic IDH_CHECK1
    help text for control 1(IDC_CHECK1)
    .topic IDH_CHECK2
    help text for control 2(IDC_CHECK2)

    ---- 其 中IDH_CHECK1 和IDH_CHECK2 為 對 話 框 控 件 的 幫 助 主 題ID( 主 題 號 的 別 名)。
    ---- 2. 創 建 一 個2 維 數 組, 映 射 控 件ID 和 幫 助 主 題 號

    ---- 在 對 話 框 類 的*.cpp 文 件 中, 加 入 一 個2 維 數 組, 數 組 形 式 如 下:

    static DWORD myarray[] = {
    IDC_CHECK1, 1,
    IDC_CHECK2, 2,
    IDC_CHECK3, -1,
    0,0
    };

    ---- 其 中IDC_CHECK1 是 控 件 的ID,1 是 控 件 的 幫 助 主 題 號,-1 表 示 該 控 件 沒 有 幫 助, 數 組 的 最 后 一 對 是0 和0。
    ---- 3. 在 幫 助 項 目 中 創 建 一 個 頭 文 件, 映 射 主 題 號 和 主 題ID

    #define IDH_CHECK1  1
    #define IDH_CHECK2  2

    ---- 把 頭 文 件 和 文 本 文 件 添 加 到 幫 助 項 目 中, 具 體 詳 見VB 中 相 應 的 說 明。
    ---- 最 后 的 映 射 關 系 為:

    ---- 控 件 的ID < --(2 維 數 組)--> 幫 助 主 題 號< -- ( 頭 文 件) --> 主 題ID< --( 文 本 文 件)-- > 控 件 幫 助 正 文

    ---- 4. 實 現 鼠 標 右 鍵 觸 發" 這 是 什 么 ?" 幫 助

    ---- 在 對 話 框 類 中 加 入WM_CONTEXTMENU 消 息 的 處 理 函 數, 形 式 如 下:

    void CMyDialog::OnContextMenu
    (CWnd* pWnd,CPoint point)
    {
    HtmlHelp(
    pWnd->GetSafeHwnd(),
    "my_chm.chm::/ctrlhlp.txt",
    HH_TP_HELP_CONTEXTMENU,
    (DWORD)(LPVOID)myarray);
    }
    F1 aclearcase/" target="_blank" >ccess to context-sensitive help means that users
    will be able to press F1 when a control has focus to access help.

    ---- 5. 實 現F1 鍵 觸 發 上 下 文 敏 感 幫 助
    ---- 在 對 話 框 類 中 加 入WM_HELPINFO 消 息 的 處 理 函 數, 形 式 如 下:

    BOOL CMyDialog::OnHelpInfo(HELPINFO* pHelpInfo)
    {
    if (pHelpInfo- >iContextType == HELPINFO_WINDOW)
    {
    return HtmlHelp(
    (HWND)pHelpInfo- >hItemHandle,
    "my_chm.chm::/ctrlhlp.txt",
    HH_TP_HELP_WM_HELP,
    (DWORD)(LPVOID)myarray)
    != NULL;
    }
    return TRUE;
    }

    ---- 6. 實 現" 這 是 什 么 ?" 問 號 指 針 幫 助
    ---- 如 果 您 已 經 實 現F1 鍵 觸 發 上 下 文 敏 感 幫 助, 那 么 很 容 易 實 現 問 號 指 針 幫 助。 在 對 話 框 的 擴 展 風 格 中, 選 擇 上 下 文 敏 感 幫 助 校 驗 框, 使 小 問 號 圖 標 出 現 在 對 話 框 標 題 條 的 右 邊 即 可。

    四、 實 現 菜 單 上 下 文 敏 感 幫 助
    ---- 1. 加 入WM_MENUSELECT 消 息 處 理 函 數
    ---- 這 樣 做 的 目 的 是 獲 取 上 下 文 敏 感 菜 單 的 標 志。

    void CMainFrame::OnMenuSelect
    ( UINT nItemID, UINT nFlags, HMENU hSysMenu )
    {
    TRACE("CMainFrame::OnMenuSelect: nItemID=
    %d,nFlags=%d,HMENU=%d%\n",nItemID,
    nFlags,hSysMenu);
    //when close menu or press ESC key or press F1 key outside
    // the menu , please don't not assignment
    if(nFlags!=0xFFFF && hSysMenu!=0)   
       m_nMenuItemIDOfContextHelp=nItemID;
    CFrameWnd::OnMenuSelect(nItemID, nFlags, hSysMenu);
    }

    ---- 2. 加 入WM_HELPINFO 消 息 處 理 函 數
    ---- 這 樣 的 目 的 是 獲 取F1 的 按 鍵 消 息, 實 現 菜 單 上 下 文 敏 感 幫 助。

    BOOL CMainFrame::OnHelpInfo
    (HELPINFO* pHelpInfo)
    {
    TRACE("CMainFrame::OnHelpInfo---
    m_nMenuItemIDOfContextHelp=
    %d\n",m_nMenuItemIDOfContextHelp);
    switch(m_nMenuItemIDOfContextHelp)
    {
      case IDM_HtmlHelp:
    HtmlHelp(NULL, "MsiHtml0716.chm::/zoom.htm",
    HH_DISPLAY_TOPIC, 0);
    m_nMenuItemIDOfContextHelp=0;
    break;
      case IDM_LOOKDLG:   
    HtmlHelp(NULL,"MsiHtml0716.chm::/
    zoom11.htm", HH_DISPLAY_TOPIC, 0);
    m_nMenuItemIDOfContextHelp=0;
    break;
      default:
    HtmlHelp(NULL,"MsiHtml0716.chm::/
    welcome.htm", HH_DISPLAY_TOPIC, 0);
    }
    return CMDIFrameWnd::OnHelpInfo(pHelpInfo);
    }

    ---- 讀 者 朋 友 若 對 此 感 興 趣, 可 向 作 者(thj@cug.edu.cn) 索 要 完 整 的 源 程 序。
    ---- ( 作 者 地 址: 湖 北 武 漢 市 中 國 地 質 大 學 信 息 工 程 學 院 軟 件 教 研 室,430000) 

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>