Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подключение chm-файла

6.0K
07 декабря 2008 года
Balda
79 / / 12.05.2008
Нужно подключить chm-файл справки.
пробую так:
 
Код:
CHAR buffer[100];
GetCurrentDirectory(sizeof(buffer),buffer);
WideString Help = WideString(buffer) + "\\R11_HELP.chm";
Application->HelpFile = Help;
Application->HelpCommand(HELP_CONTENTS, 0);


Выдает ошибку о том, что данный файл не являеться Win-справкой.
Как подключить chm-файл справки?
397
07 декабря 2008 года
SergPas
527 / / 03.02.2007
Цитата:
Выдает ошибку о том, что данный файл не являеться Win-справкой.
Как подключить chm-файл справки?

Правильно выдаёт ошибку... Вы же подключаете не *.hlp-файл, а *.chm...
Вам придётся довольствоваться только открытием chm-файла функциями, например, ShellExecute или CreateProcess; о привязке раздела справки к конкретному контролу, насколько я помню, в этом случае придётся забыть...

246
08 декабря 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: Balda

Выдает ошибку о том, что данный файл не являеться Win-справкой.
Как подключить chm-файл справки?


WinHelp (.hlp) и HTMLHelp (.chm) разные вещи.
Для данного типа справочного файлов нужно использовать функцию HtmlHelp(...)
например:

 
Код:
HWND hwnd =
   HtmlHelp(
            GetDesktopWindow(),
            "c:\\Help.chm::/Intro.htm>Mainwin",
            HH_DISPLAY_TOPIC,
            NULL) ;
397
08 декабря 2008 года
SergPas
527 / / 03.02.2007
Цитата:
Для данного типа справочного файлов нужно использовать функцию HtmlHelp(...)


И неужели можно привязать конкретный контрол к конкретному разделу справки?

246
08 декабря 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: SergPas
И неужели можно привязать конкретный контрол к конкретному разделу справки?


Можно. Например, назначил контроллам св-во HelpContext и в обработчике TApplicationEvents::OnHelp

Код:
bool __fastcall TForm1::ApplicationEvents1Help(WORD Command, int Data, bool &CallHelp)

{
  if (Command == HELP_CONTEXT || Command == HELP_CONTEXTPOPUP)
  {
    HtmlHelp(NULL, sHelpFile.c_str(), HH_HELP_CONTEXT, Data);
    // не надо звать WinHelp
    СallHelp = false;
  }
  return true;
}
397
08 декабря 2008 года
SergPas
527 / / 03.02.2007
Цитата:
Можно. Например, назначил контроллам св-во HelpContext и в обработчике TApplicationEvents::OnHelp


А в рамках WinAPI-приложения как это дело организуется?

6.0K
08 декабря 2008 года
Balda
79 / / 12.05.2008
 
Код:
[C++ Error] Unit1.cpp(94): E2268 Call to undefined function 'HtmlHelp'


Какие-то дополнительные библиотеки подключать надо?
246
09 декабря 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: Balda
 
Код:
[C++ Error] Unit1.cpp(94): E2268 Call to undefined function 'HtmlHelp'


Какие-то дополнительные библиотеки подключать надо?


для начала нужно эту библиотеку создать:
implib htmlhelp.lib hhctrl.ocx
затем htmlhelp.lib добавить к проекту, или загружать hhctrl.ocx с помощью LoadLibrary и получать адреса ф-ий через GetProcAddress.

6.0K
09 декабря 2008 года
Balda
79 / / 12.05.2008
А где эту библиотеку взять?
246
09 декабря 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: Balda
А где эту библиотеку взять?


Какую именно, hhctrl.ocx? Она идет с виндой.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог