<PAVE OVER> Mostrar ayuda contextual
Ayuda contextual, con el propósito de este tutorial, hace referencia a la compatibilidad de ayuda para los controles de un cuadro de diálogo que acceso de usuarios:
Presionando la tecla F1.
¿Haciendo clic con el botón secundario en un control (¿qué es Esto? Ayuda).
¿Usar el puntero de interrogación (el ¿qué es Esto? Puntero de Ayuda).
Para cada control que desee admitir ayuda contextual, establezca la propiedad de HelpID a VERDADERO.
Si es necesario, agregue htmlhelp.lib a la propiedad de Dependencias adicionales , que está en la página de propiedades de Entrada de la carpeta de Vinculador en el cuadro de diálogo de Páginas de propiedades del proyecto.
Información de origen para ayuda contextual se almacena en un archivo .txt que se incluye en el proyecto de ayuda HTML.
Para crear el archivo de texto de ayuda contextual
Utilice un editor de texto para crear un archivo .txt.
Da formato a los temas como sigue:
.topic 1
help text for control 1
.topic 2
help text for control 2
Nota
Para obtener más información, vea “ayuda contextual de Diseñar” en la ayuda en línea de ayuda HTML.En el menú de Ay&uda (en ayuda HTML help Workshop), elija Temas de Ayuda.
Después de crear el archivo .txt, agréguelo a la sección de [archivos] en el archivo .hhp.
Para admitir la ayuda para los recursos en un cuadro de diálogo, debe crear una matriz bidimensional que asigna id. del control para ayudar a los id. (números de tema).
Para crear la matriz bidimensional
En el archivo .cpp, para cada clase que representa un cuadro de diálogo, agregue una matriz bidimensional al final de la clase. Por ejemplo:
static DWORD myarray[] = { IDC_CHECK1, 1, IDC_BUTTON1, 2, IDC_EDIT1, (DWORD)-1, 0,0 };
Cada entrada de los pares de la matriz bidimensional un Id. de recurso para un control de cuadro de diálogo con un número de tema del archivo de texto de ayuda contextual. ¿Si no desea un recurso concreto para tener ¿qué es Esto? Ayuda, utilice – 1. El segundo par de esta matriz debe ser 0,0.
El acceso de F1 a ayuda contextual significa que los usuarios podrán presionar F1 cuando un control tiene el foco para tener acceso a la ayuda.
Para habilitar el acceso de F1 a ayuda contextual
Implemente un controlador para el mensaje de WM_HELPINFO (en cada clase de cuadro de diálogo donde desea el acceso de F1 a ayuda contextual) y aplique el código siguiente al controlador:
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é es Esto? Ayuda muestra la ayuda del control cuando un usuario hace clic con el botón secundario en el control.
¿Para implementar haga clic con el botón secundario en ¿qué es Esto?Ayuda
¿Implemente un controlador (vea Asignar mensajes a funciones) para el mensaje de WM_CONTEXTMENU en cada clase de cuadro de diálogo donde desee ¿qué es Esto? Ayuda (seleccione el identificador para el cuadro de diálogo de la lista de identificaciones de objeto). Implemente el código siguiente al controlador:
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); }
Cuando se especifica el archivo .chm, la ubicación esperada es el directorio de trabajo del proyecto. Vea la ficha de debug del cuadro de diálogo de Páginas de propiedades para la ubicación del directorio de trabajo (de forma predeterminada, el directorio de proyecto). Cuando se especifica un archivo de texto en el .chm que contiene ayuda contextual, debe especificar la misma información de ubicación que se especifica para el archivo .txt en el archivo .chm .hhp.
¿Si implementa ya el acceso de F1 y la ayuda contextual, es fácil habilitar el ¿qué es Esto? puntero, que hace que un signo de interrogación para mostrar en la barra de título, en la esquina superior derecha del cuadro de diálogo.
¿Para habilitar el ¿qué es Esto?Puntero de interrogación de Ayuda
- Active la casilla de Ayuda contextual en la pestaña de Estilos extendidos de propiedades del cuadro de diálogo.