Zobrazení kontextové nápovědy
Kontextová nápověda pro účely této diskuse odkazuje jako pomoc pro ovládací prvky v dialogovém okně přístup tohoto uživatele:
Stisknutím klávesy F1.
Klepnutím pravým tlačítkem myši ovládací prvek (co je to?Nápověda).
Pomocí ukazatele otazník (co je to?Nápověda ukazatel).
Pro každý ovládací prvek, který chcete podporovat kontextovou nápovědu, nastavit HelpID vlastnost True.
V případě potřeby přidejte htmlhelp.lib Chcete-li Další závislosti vlastnost, která je v vstupní na stránce vlastností Propojovací program složky ve vašem projektu Stránky vlastností dialogové okno.
Informace o zdroji pro zobrazení kontextové nápovědy je uložen v souboru TXT, které můžete zahrnout do projektu nápovědy HTML.
Chcete-li vytvořit textový soubor kontextové nápovědy
Pomocí textového editoru vytvořte soubor s příponou .txt.
Tento formát v tématech:
.topic 1
help text for control 1
.topic 2
help text for control 2
[!POZNÁMKA]
Další informace naleznete v nápovědě online "Navrhování kontextovou nápovědu" v nápovědě HTML.Z pomoci nabídky (v HTML Help Workshop), zvolte témata nápovědy.
Po vytvoření souboru s příponou TXT, můžete jej přidáte do oddílu [Files] v souboru hhp.
Podporu nápovědy pro zdroje v dialogovém okně, je třeba vytvořit dvojrozměrné pole, která mapuje ID Nápověda (téma čísla) ID ovládacích prvků.
Chcete-li vytvořit dvojrozměrné pole
V souboru CPP pro každou třídu, která představuje dialogové okno přidáte na konec třídy dvourozměrné pole.Příklad:
static DWORD myarray[] = { IDC_CHECK1, 1, IDC_BUTTON1, 2, IDC_EDIT1, (DWORD)-1, 0,0 };
Každá položka v dvojrozměrné pole dvojice číslo ID zdroje pro ovládací prvek dialogové okno-téma číslem z textového souboru kontextovou nápovědu.Pokud nechcete, aby se určitý prostředek, aby co to je?Nápověda, použijte –1.Poslední dvojicí v tomto poli by měl být 0,0.
F1 přístup ke kontextové nápovědě znamená, že uživatelé budou moci v případě, že ovládací prvek má fokus nápovědu stisknutím klávesy F1.
Chcete-li povolit přístup kontextovou nápovědu F1
Implementujte obslužnou rutinu pro WM_HELPINFO zprávy (v každé třídě dialogové okno, kde chcete, aby F1 přístup ke kontextové nápovědy) a implementují následující kód pro obslužnou rutinu:
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; }
Co je to?Nápověda zobrazí nápovědu ovládacího prvku, když uživatel klepne pravým tlačítkem myši ovládací prvek.
K implementaci klepněte pravým tlačítkem myši co to je?Nápověda
Implementujte obslužné rutiny (viz Mapování zpráv do funkcí) pro WM_CONTEXTMENU zprávy v každé třídě dialogové okno-místo, kam chcete, co je to?Nápověda (vyberte ze seznamu ID objektů ID pro dialogové okno).Implementujte následující kód pro obslužnou rutinu:
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); }
Zadáte-li soubor CHM, je na očekávaném místě projektu pracovní adresář.Najdete ladění kartě Stránky vlastností dialogové okno umístění pracovního adresáře (ve výchozím nastavení adresáři projektu).Zadáte-li textový soubor v chm, který obsahuje kontextovou nápovědu, je nutné zadat stejné informace o umístění pro soubor TXT v chm hhp.
Pokud implementujete již F1 přístup ke kontextové nápovědě, můžete snadno povolit, co je to?ukazatel, který způsobí, že otazník, který se zobrazí v záhlaví okna v pravém horním rohu dialogového okna.
Chcete-li povolit, co je to?Ukazatel s otazníkem Nápověda
- Vyberte Kontextová nápověda políčko Extended styly kartu dialogovém okně Vlastnosti.