顯示即時線上說明
即時線上說明,為以下討論的目的,是指說明支援在使用者存取的對話方塊的控制項:
按下 F1 鍵。
以滑鼠右鍵按一下控制項 (這是什麼? 說明)。
您可以使用問題標記指標 (這是什麼? 說明指標)。
針對每個控制項要支援即時線上說明,設定 HelpID 屬性對 True。
如果需要,將 [其他相依性] 屬性加入 htmlhelp.lib,在 Linker 資料夾 Input 屬性頁在專案的 [屬性頁] 對話方塊中。
即時線上說明的來源資訊您在 HTML 說明專案中的 .txt 檔案中。
建立即時線上說明文字檔
使用文字編輯器建立 .txt 檔案。
格式化主題如下:
.topic 1
help text for control 1
.topic 2
help text for control 2
注意事項 |
---|
「設計即時線上說明 HTML 說明的線上說明 (如需詳細資訊,請參閱從 Help 功能表 (在 HTML Help Workshop),請選取 Help Topics。 |
在您建立 .txt 檔案後,請將它加入至 .hhp 檔案的 [檔案] 部分。
若要支援資源的說明在對話方塊中,您必須建立二維陣列對應控制項 ID 的說明 ID (主題數目)。
建立二維陣列
在 .cpp 檔,表示對話方塊的每個類別中,加入二維陣列到類別的結尾。 例如:
static DWORD myarray[] = { IDC_CHECK1, 1, IDC_BUTTON1, 2, IDC_EDIT1, (DWORD)-1, 0,0 };
在這個二維陣列的每個項目配對對話方塊控制項的資源 ID 與主題編號從即時線上說明文字檔。 如果您不想要特定資源有什麼是這? 說明,使用– 1。 在這個陣列的最後一個對應該是 0,0。
F1 至即時線上說明的存取表示使用者可以按 F1,當控制項具有存取的重點說明時。
啟用 F1 至即時線上說明的存取
實作 WM_HELPINFO 訊息處理常式 (在您想要 F1 至即時線上說明的存取) 的每個對話方塊類別並實作處理常式的下列程式碼:
BOOL CMyDlg::OnHelpInfo(HELPINFO* pHelpInfo) { BOOL bRet = TRUE; if (pHelpInfo->iContextType == HELPINFO_WINDOW) { HWND hwnd = ::HtmlHelp( (HWND)pHelpInfo->hItemHandle, _T("my_chm.chm::/ctrlhlp.txt"), HH_TP_HELP_WM_HELP, (DWORD)(LPVOID)myarray); bRet = (NULL != hwnd); } return bRet; }
這是什麼? 當使用者以滑鼠右鍵按一下控制項時,說明會顯示控制項的說明。
實作以滑鼠右鍵按一下為何這?說明
實作處理常式 (請參閱 out 此函式之對應訊息) 在您想要的每個對話方塊類別的 WM_CONTEXTMENU 訊息的原因是這個? 說明 (為對話方塊中選擇 ID 從物件 ID 清單)。 實作處理常式的下列程式碼:
void CMyDlg::OnContextMenu(CWnd* pWnd, CPoint point) { UNREFERENCED_PARAMETER(point); ::HtmlHelp( pWnd->GetSafeHwnd(), _T("my_chm.chm::/ctrlhlp.txt"), HH_TP_HELP_CONTEXTMENU, (DWORD)(LPVOID)myarray); }
當您指定 .chm 檔時,預期的位置是專案的工作目錄。 為工作目錄參閱 Property Pages 對話方塊的 Debug 選項 (根據預設,專案目錄) 的位置。 當您在包含這個即時線上說明的 .chm 時指定文字檔案,您必須指定地點資訊和相同的 .txt 檔案中指定的 .chm .hhp 檔案。
如果您已經實作 F1 至即時線上說明的存取,您可以輕鬆地為何這? 指標,造成問號出現在標題列中,在對話方塊的右上角。
啟用為何這?說明問題標記指標
- 選取對話方塊屬性的 Extended Styles 選項的 Context help 核取方塊。