afficher l'aide contextuelle
L'aide contextuelle, pour les besoins de cette discussion, fait référence à l'utilisation des contrôles dans une boîte de dialogue à laquelle les utilisateurs accèdent :
Appuyez sur la touche F1.
Cliquez avec le bouton droit sur un contrôle (Qu'est-ce que c'est ? Aide).
En utilisant le pointeur en forme de points d'interrogation (le Qu'est-ce que c'est ? Pointeur d'aide).
Pour chaque contrôle dont vous souhaitez qu'il prenne en charge l'aide contextuelle, affectez à la propriété HelpID Vrai.
Si nécessaire, ajoutez htmlhelp.lib à la propriété Dépendances supplémentaires, qui figurent dans la page de propriétés de Entrée du dossier Éditeur de liens dans la boîte de dialogue Pages de propriétés de votre projet.
Les informations de la source de l'aide contextuelle est stockée dans un fichier .txt que vous ajoutez à votre projet d'aide HTML.
Pour créer le fichier texte d'aide contextuelle
Utilisez un éditeur de texte pour créer un fichier .txt.
Normalisez les sujets de la façon suivante :
.topic 1
help text for control 1
.topic 2
help text for control 2
Notes
Pour plus d'informations, consultez « conception l'aide contextuelle » dans l'aide en ligne de l'aide HTML.Dans le menu Aide (dans l'atelier d'aide HTML), choisissez Rubriques d'aide.
Après avoir créé le fichier .txt, ajoutez-le à la section [Fichiers] dans votre fichier .hhp.
Pour prendre en charge l'utilisation des ressources dans une boîte de dialogue, vous devez créer un tableau à deux dimensions qui associe les identificateurs de contrôle pour les ID d'aide (numéros de rubrique).
Pour créer la table à deux dimensions
Dans le fichier .cpp, pour chaque classe qui représente une boîte de dialogue, ajoutez une table à deux dimensions à la fin de la classe. Par exemple :
static DWORD myarray[] = { IDC_CHECK1, 1, IDC_BUTTON1, 2, IDC_EDIT1, (DWORD)-1, 0,0 };
Chaque entrée de la table à deux dimensions associe un ID de ressource pour un contrôle de la boîte de dialogue avec un numéro de rubrique du fichier texte d'aide contextuelle. Si vous ne souhaitez pas qu'une ressource particulière ait Qu'est-ce que c'est ? Aide, utilisez – 1. La dernière paire de cette table doit être 0,0.
L'accès via la touche F1 à l'aide contextuelle signifie que les utilisateurs peuvent appuyez sur F1 lorsque le contrôle est actif pour accéder à de l'aide.
Pour activer l'accès via la touche F1 à l'aide contextuelle
Implémenter un gestionnaire du message de WM_HELPINFO (dans chaque classe de la boîte de dialogue dans laquelle vous souhaitez accéder via la touche F1 à l'aide contextuelle) et implémenter le code suivant pour le gestionnaire :
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; }
Qu'est-ce que c'est ? L'aide affiche l'aide du contrôle lorsqu'un utilisateur clique avec le bouton droit sur le contrôle.
Pour implémenter le Qu'est-ce que c'est ? via le bouton droitAide
Implémenter un gestionnaire (voir Mapper des messages aux fonctions) du message de WM_CONTEXTMENU dans chaque classe de la boîte de dialogue dans laquelle vous souhaitez avoir un Qu'est-ce que c'est ? Aide (sélectionner l'ID de la boîte de dialogue de la liste des ID de l'objet). Implémenter le code suivant pour le gestionnaire :
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); }
Lorsque vous spécifiez le fichier .chm, l'emplacement attendu est le répertoire de travail du projet. Consultez l'onglet Déboguer de la boîte de dialogue Pages de propriétés pour l'emplacement du répertoire de travail (par défaut, le répertoire de projet). Lorsque vous spécifiez le fichier texte au format .chm qui contient les rubriques d'aide contextuelle, vous devez spécifier les mêmes informations d'emplacement qui sont spécifiées pour le fichier .txt dans le fichier .chm .hhp.
Si vous implémentez déjà l'accès à l'aide contextuelle via la touche F1, vous pouvez-vous activer le pointeur Qu'est-ce que c'est ?, qui entraîne l'affichage d'un point d'interrogation dans la barre de titre, dans l'angle supérieur droit de la boîte de dialogue.
Pour activer le Qu'est-ce que c'est ?Pointeur d'aide en forme de point d'interrogation
- Sélectionnez la case à cocher Aide contextuelle sous l'onglet Styles étendus des propriétés de la boîte de dialogue.