Affichage de l'aide contextuelle
L'aide contextuelle, pour les besoins de cette discussion, se rapporte à l'aide de les contrôles dans une boîte de dialogue qui accès d'utilisateurs :
En appuyant sur la touche F1.
En cliquant avec le bouton droit sur un contrôle (ce qui est cela ?Aide).
À l'aide de le pointeur en forme de point d'interrogation (ce qui est cela ?Pointeur d'aide).
Pour chaque contrôle que vous souhaitez prendre en charge l'aide contextuelle, affectez à la propriété de HelpID à True.
Si nécessaire, ajoutez htmlhelp.lib à la propriété Dépendances supplémentaires, qui est dans la page de propriétés de Entrée du dossier de Éditeur de liens dans la boîte de dialogue Pages de propriétés de votre projet.
L'information source de l'aide contextuelle est stockée dans un fichier .txt que vous incluez dans 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.
Mettez les rubriques suivantes :
.topic 1
help text for control 1
.topic 2
help text for control 2
[!REMARQUE]
Pour plus d'informations, consultez « conception de l'aide contextuelle » dans l'aide en ligne d'aide HTML.Dans le menu de Aide (dans l'atelier d'aide HTML), choisissez Rubriques d'aide.
Après avoir créé le fichier .txt, ajoutez-le [à la section des fichiers] dans votre fichier de .hhp.
Pour prendre en charge l'utilisation des ressources dans une boîte de dialogue, vous devez créer un tableau à deux dimensions qui mappe les ID de contrôle pour aider les identificateurs (numéros de la rubrique).
Pour créer le tableau à deux dimensions
Dans le fichier .cpp, pour chaque classe qui représente une boîte de dialogue, ajoutez un tableau à 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 dans le tableau à deux dimensions associe un identificateur de ressource pour un contrôle de boîte de dialogue avec un numéro de rubrique du fichier texte d'aide contextuelle.Si vous ne souhaitez pas de ressource spécifique pour que ce qui est cela ?Aide, utilisez – 1.Les deux dernières dans ce tableau doivent avoir la valeur 0,0.
L'accès sur F1 à l'aide contextuelle signifie que les utilisateurs pourront appuyer sur F1 lorsqu'un contrôle a le focus pour accéder à l'aide.
Pour permettre l'accès sur F1 à l'aide contextuelle
Implémentez un gestionnaire pour le message de WM_HELPINFO (dans chaque classe de boîte de dialogue où vous souhaitez accéder sur F1 à l'aide contextuelle) et implémentez 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; }
Que faire ceci est ?L'aide affiche l'utilisation du contrôle lorsqu'un utilisateur clique avec le bouton droit sur le contrôle.
Pour implémenter le bouton droit sur ce qui est cela ?Aide
Implémentez un gestionnaire (voir l' Mapper des messages aux fonctions) pour le message de WM_CONTEXTMENU dans chaque classe de boîte de dialogue où vous souhaitez que ce est ?Aide (sélectionnez l'ID de la boîte de dialogue de la liste d'ID d'objet).Implémentez 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 de Déboguer de la boîte de dialogue de Pages de propriétés pour l'emplacement du dossier de travail (par défaut, le répertoire du projet).Lorsque vous spécifiez le fichier .chm texte dans le qui contient l'aide contextuelle, vous devez spécifier les mêmes informations d'emplacement que est spécifié pour le fichier .txt dans le fichier .chm .hhp.
Si vous implémentez déjà l'accès sur F1 à l'aide contextuelle, pouvez-vous facilement activer ce qui est cela ?pointeur, qui fait apparaître un point d'interrogation sur la barre de titre, dans l'angle supérieur droit de la boîte de dialogue.
Pour activer ce qui est cela ?Pointeur en forme de point d'interrogation d'aide
- Activez la case à cocher de Aide contextuelle dans l'onglet de Extended Styles des propriétés de boîte de dialogue.