Так я ж тебе писал недавно, как сделать. Короче ещё раз, с подробностями: 1. Вызывать надо через API ф-цию HtmlHelpLongArg, декларируешь её и объявляешь константукод модуля) Declare Function HtmlHelpLongArg Lib "hhctrl.ocx" _ Alias "HtmlHelpA" (ByVal hwndCaller As Long, _ ByVal pszFile As String, ByVal uCommand As Long, _ ByVal dwData As Long) As Long Public Const HH_HELP_CONTEXT = &HF 2. В файле проекта справки, например Справка.hhp должны быть секция Alias и секция MAP. Открой файл проекта (не файл справки, а файл проекта) обычным блокнотом и посмотри, выглядит это примерно так: [ALIAS] IDH_CRОбщиеСведения=CR - Общие сведения.htm IDH_CRОбщийСписокТоваров=CR - Общий список товаров.htm IDH_CRУчётнаяКарточка=CR - Учетная карточка.htm IDH_CRШтрихКод=CR - Штрихкод EAN-13.htm IDH_ОбщиеСведения=Общие сведения.htm [MAP] #Define IDH_CRОбщиеСведения 3 #Define IDH_CRОбщийСписокТоваров 4 #Define IDH_CRОтчётЗаМесяц 8 #Define IDH_CRОтчётОпродажах 7 Если у тебя этих секций нет, их нужно создать. Я пользуюсь обычным HTML HelpWorkShop. Открываешь им свой проект справки и на вкладке project дави кнопку HtmlHelp API Information (на левом тулбаре). Появится окошко с одноименным названием, перейди на вкладку Alias и создавай секцию Alias, например так: IDH_CRШтрихКод=CR - Штрихкод EAN-13.htm IDH_CRШтрихКод - это псевдоним темы CR - Штрихкод EAN-13.htm. Так называемый Alias. При этом псевдонимы можно указывать только к темам, которые были присоединены к проекту как topic - файлы. Их можно присоединить, нажав на тулбаре вкладки project кнопку Add/Remove topic files. Создаёшь таким образом псевдоним. Сохраняешь свой файл проекта и открываешь его блокнотом. Найдешь секцию Alias и посмотри, как составлены псевдонимы тем. Затем если нет секции MAP, впиши её из блокнота: при этом должен быть указан псевдоним темы и через один пробел - её цифровой идентификатор, через который ты будешь вызывать данную тему из своего ехе. Между секцией Alias и секцией MAP должна быть одна пустая строка. [MAP] #Define IDH_CRОбщиеСведения 3 #Define IDH_CRШтрихКод 10 т.е. когда вызываешь из ехе справку с идентификатором 10, программа через секцию МАР определит, что надо искать псевдоним IDH_CRШтрихКод. Потом через псевдоним по секции Alias, определит, что ему соответствует htm -файл CR - Штрихкод EAN-13.htm и отобразит его на экране. Такая вот цепочка. Когда присвоишь всем своим псевдонимам цифровые идентификаторы, закрываешь блокнот, при этом будет запрос на сохранение этих изменений.Дави сохранить. Открываешь затем его HTML Help WorkShop' ом и компилируешь свою справку. Всё, справка с идентификаторами готова. 3. Открываешь свой VB проект и ставишь на форму кнопку "Справка". В её свойствах (правое окошко в редакторе) в строке HelpContextID указываешь номер цифрового идентификатора. Например 10. А в коде кнопки пишешь: Private Sub Command1_Click() On Error Resume Next Dim iRetCode As Long iRetCode = HtmlHelpLongArg(Me.hwnd, App.Path & "\Справка.chm", HH_HELP_CONTEXT, Me.ActiveControl.HelpContextID) End Sub При этом скомпилированый файл справки должен лежать в папке с программой. Можешь вызвать справку так: On Error Resume Next Dim iRetCode As Long iRetCode = HtmlHelpLongArg(Me.hwnd, App.Path & "\Справка.chm", HH_HELP_CONTEXT, 10) При этом в свойствах кнопки указывать идентификатор не надо. При нажатии на кнопку откроется тема справки, которой присвоен идентификатор 10. Ну вроде всё. Если не разберёшься, пиши на мыло. Я объяснил тебе, как открыть конкретный топик, теперь блин, и ты объясни мне, как открыть в конкретном топике конкретное место
Ответить
|