Как заменить стандартный HELP на HTMLHelp?
19.03.2002
|
Odi$$ey |
С>Подскажите можно ли заменить стандартный хелп, который подключается при создании проекта в AppWizard-е на HTML хелп, так чтобы он работал как обычный хелп, и если можно то как?
"Элементарно, Ватсон!" хотя и несколько утомительно каждый новый проект начинать с Copy/Paste, эх, кто-бы wizard написал
Создать HTML help проект с помощью HTML Help Workshop, hhc.exe из HTML Help Workshop будет потом использоваться при компиляции справки.
У меня HTML help проект расположен в подкаталоге html каталога с проектом программы, далее это влияет на пути.
Включить hhp-файл этого проекта в проект своей программы
Отредактировать настройки проекта (All Configuration) для этого hhp файла:
*.hhp -> Custom Build ->
&Description:
Создание файла HTML-справки $(TargetName).chm...
Commands:
hhc.exe html\$(InputName).hhp
echo.
copy html\$(InputName).chm $(OutDir)\$(InputName).chm
Outputs:
html\$(InputName).chm
Dependencies:
html\$(TargetName).hm
и все htm, которые есть в проекте
resource.h -> Custom Build ->
&Description:
Создание заголовочного файла HTML-справки $(TargetName).hm...
Commands:
makehm — консольная програмка для создания hm-файла с IDH_ идентификаторами, естественно должна лежать в доступном по PATH месте.
Output:
html\$(TargetName).hm
Прилинковать к проекту htmlhelp.lib
Перегрузить виртуальную функцию WinHelp:
в InitInstance() добавить замену расширения по умолчанию для файла справки:
в StdAfx.h добавить
#include <htmlhelp.h>
#include "html\..... .hm"
в карте сообщений CMyApp должно быть:
в файл hhp добавить секцию:
Оригинал:
http://codeguru.earthweb.com/help/html_help.shtml
"Элементарно, Ватсон!" хотя и несколько утомительно каждый новый проект начинать с Copy/Paste, эх, кто-бы wizard написал
Создать HTML help проект с помощью HTML Help Workshop, hhc.exe из HTML Help Workshop будет потом использоваться при компиляции справки.
У меня HTML help проект расположен в подкаталоге html каталога с проектом программы, далее это влияет на пути.
Включить hhp-файл этого проекта в проект своей программы
Отредактировать настройки проекта (All Configuration) для этого hhp файла:
*.hhp -> Custom Build ->
&Description:
Создание файла HTML-справки $(TargetName).chm...
Commands:
hhc.exe html\$(InputName).hhp
echo.
copy html\$(InputName).chm $(OutDir)\$(InputName).chm
Outputs:
html\$(InputName).chm
Dependencies:
html\$(TargetName).hm
и все htm, которые есть в проекте
resource.h -> Custom Build ->
&Description:
Создание заголовочного файла HTML-справки $(TargetName).hm...
Commands:
makehm ID_,IDH__,0x10000 IDM_,IDH_,0x10000 resource.h >>"html\$(TargetName).hm"
makehm IDP_,IDH_,0x30000 resource.h >>"html\$(TargetName).hm"
makehm IDR_,IDH_,0x20000 resource.h >>"html\$(TargetName).hm"
makehm IDD_,IDH_,0x20000 resource.h >>"html\$(TargetName).hm"
makehm IDW_,IDH_,0x50000 resource.h >>"html\$(TargetName).hm"
echo. >>"html\$(TargetName).hm"
MakeIDH "html\$(TargetName).hm"
makehm — консольная програмка для создания hm-файла с IDH_ идентификаторами, естественно должна лежать в доступном по PATH месте.
Output:
html\$(TargetName).hm
Прилинковать к проекту htmlhelp.lib
Перегрузить виртуальную функцию WinHelp:
void YourClassMainFrame::WinHelp(DWORD dwData, UINT nCmd)
{
TRACE("Подсказка для IDH=0x%X\n",dwData);
if( HtmlHelp(m_hWnd, AfxGetApp()->m_pszHelpFilePath, HH_HELP_CONTEXT,
nCmd == HELP_CONTEXT ? dwData : 0) == NULL )
HtmlHelp(m_hWnd, AfxGetApp()->m_pszHelpFilePath, HH_HELP_FINDER, 0 );
}
в InitInstance() добавить замену расширения по умолчанию для файла справки:
CString strHelpFile = m_pszHelpFilePath;
strHelpFile.Replace(".HLP", ".chm");
free((void*)(m_pszHelpFilePath));
m_pszHelpFilePath = _tcsdup(strHelpFile);
в StdAfx.h добавить
#include <htmlhelp.h>
#include "html\..... .hm"
в карте сообщений CMyApp должно быть:
BEGIN_MESSAGE_MAP(CMyApp, CWinApp)
//{{AFX_MSG_MAP(CMyApp)
...
//}}AFX_MSG_MAP
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
END_MESSAGE_MAP()
в файл hhp добавить секцию:
[MAP]
#include your.hm
[ALIAS]
IDH_ABOUTBOX=about.htm
IDH_POPUP_MENU=interface.htm#SYSTEMMENU
и т.д. для всех диалогов, меню и т.д. чтоб при F1 выходить с них куда надо в справке
Оригинал:
http://codeguru.earthweb.com/help/html_help.shtml
19.03.2002 6 комментариев |
O$>"Элементарно, Ватсон!" хотя и несколько утомительно каждый новый проект начинать с Copy/Paste, эх, кто-бы wizard написал
Большое Спасиб!
С>>Подскажите можно ли заменить стандартный хелп, который подключается при создании проекта в AppWizard-е на HTML хелп, так чтобы он работал как обычный хелп, и если можно то как?
С>>Спасиб.
O$>"Элементарно, Ватсон!" хотя и несколько утомительно каждый новый проект начинать с Copy/Paste, эх, кто-бы wizard написал
выдает какую-то дрочь:
Making Help File...
"hhc.exe" ¥ ï¥âáï ¢ãâ॥© ¨«¨ ¢¥è¥©
ª®¬ ¤®©, ¨á¯®«ï¥¬®© ¯à®£à ¬¬®© ¨«¨ ¯ ª¥âë¬ ä ©«®¬.
¥ 㤠¥âáï ©â¨ ãª § ë© ä ©«.
Error executing e:\windows\system32\cmd.exe.
С>Making Help File...
С>"hhc.exe" ¥ ï¥âáï ¢ãâ॥© ¨«¨ ¢¥è¥©
С>ª®¬ ¤®©, ¨á¯®«ï¥¬®© ¯à®£à ¬¬®© ¨«¨ ¯ ª¥âë¬ ä ©«®¬.
С>¥ 㤠¥âáï ©â¨ ãª § ë© ä ©«.
С>Error executing e:\windows\system32\cmd.exe.
С>
так русским языком же написано :
"hhc.exe" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Не удается найти указанный файл.
Добавь путь к HTML Help Workshop в Tools-Options-Directories-Executable Files
P.S. Правила поведения в форумах:
"Если вы отвечаете на письмо, цитируйте из него только те отрывки, которые действительно необходимы для понимания, о чём идёт речь. "
O$>Здравствуйте Сергей, Вы писали:
С>>Making Help File...
С>>"hhc.exe" ¥ ï¥âáï ¢ãâ॥© ¨«¨ ¢¥è¥©
................
O$>так русским языком же написано :
O$>"hhc.exe" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Не удается найти указанный файл.
O$>Добавь путь к HTML Help Workshop в Tools-Options-Directories-Executable Files
O$>P.S. Правила поведения в форумах:
O$>"Если вы отвечаете на письмо, цитируйте из него только те отрывки, которые действительно необходимы для понимания, о чём идёт речь. "
я этот путь сразу прописал
O$>>"hhc.exe" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Не удается найти указанный файл.
O$>>Добавь путь к HTML Help Workshop в Tools-Options-Directories-Executable Files
С>я этот путь сразу прописал
С>
у меня он кстати еще и в PATH прописался при установке.
Кстати, перекачай архивчик makehm я в него забыл засунуть утилитку MakeIDH.
O$>Здравствуйте Сергей, Вы писали:
O$>>>"hhc.exe" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Не удается найти указанный файл.
O$>>>Добавь путь к HTML Help Workshop в Tools-Options-Directories-Executable Files
С>>я этот путь сразу прописал
С>>
O$>у меня он кстати еще и в PATH прописался при установке.
O$>Кстати, перекачай архивчик makehm я в него забыл засунуть утилитку MakeIDH.
вот незадача!
я с этим хелпом возился два дня безуспешно, под конец второго дня я взял да и перегрузился из под XP на 2000 и... сразу всё заработало, грёбанный ХР...
причем под него у меня уже вторая прога не пашет