Curso Básico de HTML Help Workshop
Como llamar a un archivo .chm desde el Visual Basic:
- La documentación de ayuda practicamente no dice nada sobre este importante tema, pero buscando en la página del Guille (excelente, veanla en mi lista de recursos para Visual Basic) encontré finalemte el código que permite hacerlo. El ejemplo del Guille incluye bookmarks y vinculos que usan las propiedades HelpContextID y WhatThisHelpID de los controles. Como creo que eso lo pueden sacar fácilmente experimentando y no deseo enredar mucho el ejemplo me limitaré a poner el código para que se ejecute un archivo .chm al apretar un controlbuttom, este ejemplo es para una form con un botón que se llama mnuAyuda, aqui va:
'------------------------------------------------------------------ 'Form de prueba para HTML Help Workshop (28/Jun/98) ' '©Guillermo 'guille' Som, 1998 '------------------------------------------------------------------ Option Explicit 'En Microsoft TechNet puedes encontrar este artículo: 'HOWTO: Use HTML Help API in a Visual Basic 5.0 Application 'PSS ID Number: Q183434 ' 'Aunque la definición de la Enumeración y la primera declaración 'es de las news ' 'Htmlhelp consts Private Enum HH_COMMAND HH_DISPLAY_TOPIC = &H0 HH_HELP_FINDER = &H0 ' WinHelp equivalent HH_DISPLAY_TOC = &H1 ' not currently implemented HH_DISPLAY_INDEX = &H2 ' not currently implemented HH_DISPLAY_SEARCH = &H3 ' not currently implemented HH_SET_WIN_TYPE = &H4 HH_GET_WIN_TYPE = &H5 HH_GET_WIN_HANDLE = &H6 HH_GET_INFO_TYPES = &H7 ' not currently implemented HH_SET_INFO_TYPES = &H8 ' not currently implemented HH_SYNC = &H9 HH_ADD_NAV_UI = &HA ' not currently implemented HH_ADD_BUTTON = &HB ' not currently implemented HH_GETBROWSER_APP = &HC ' not currently implemented HH_KEYWORD_LOOKUP = &HD HH_DISPLAY_TEXT_POPUP = &HE ' display string resource id ' or text in a popup window HH_HELP_CONTEXT = &HF ' display mapped numeric value ' in dwData HH_TP_HELP_CONTEXTMENU ' Text pop-up help, similar to ' WinHelp's HELP_CONTEXTMENU. HH_TP_HELP_WM_HELP = &H11 ' text pop-up help, similar to ' WinHelp's HELP_WM_HELP. HH_CLOSE_ALL = &H12 ' close all windows opened directly ' or indirectly by the caller HH_ALINK_LOOKUP = &H13 ' ALink version of HH_KEYWORD_LOOKUP End Enum 'HtmlHelp api call 'NOTA: Si se usa esta forma, hay que indicar el último parámetro ' con la palabra ByVal delante... 'Private Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _ (ByVal hwndCaller As Long, ByVal pszFile As String, _ ByVal uCommand As HH_COMMAND, dwData As Any) As Long 'Con esta funciona perfectamente Private Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _ (ByVal hwndCaller As Long, ByVal pszFile As String, _ ByVal uCommand As HH_COMMAND, ByVal dwData As Long) As Long Private Sub mnuAyuda_Click() 'De esta forma se muestra en el tópico por defecto Dim h As Long h = HtmlHelp(Me.hWnd, "hhw_vb.chm", HH_DISPLAY_TOPIC, 0&) End Sub
Grande Guille!, y eso sería todo. Como ven, es más fácil que comer panTomás Bradanovic
tombrad@webhost.cl
http://www.webhost.cl/tombrad