Ссылки на конкретные темы в HelpnDoc, скомпилированном CHM с использованием Visual C++ HtmlHelp

Я запутался здесь. Я перенес свою справку по CHM из HtmlHelp Workshop в HelpNDoc. Я скомпилировал файл CHM и обновил свой проект MFC, чтобы перейти к правильной теме:

HtmlHelp((DWORD_PTR)_T("msa-options-publishers-db.html"), HH_DISPLAY_TOPIC);

Вышеупомянутый подход работал с моим предыдущим файлом CHM. Когда я вызываю этот вызов, происходит следующее:

CHM

Это не находит это. Теперь у меня возникли трудности, потому что, если я нажму F1 в своей IDE (VS2017), я попаду сюда. Эта статья предоставляет пример для показа темы:

HWND hwnd =
   HtmlHelp(
            GetDesktopWindow(),
            "c:\\Help.chm::/Intro.htm>Mainwin",
            HH_DISPLAY_TOPIC,
            NULL) ;

Выше HtmlHelp Вызов API принимает 4 параметра. Тем не менее, по моему CDialogEx Производный класс у меня только два параметра:

HtmlHelp

Поэтому мне нужно найти способ, с помощью которого можно открыть любую тему в моем файле CHM, скомпилированном с помощью HelpNDoc.

Обновить

На дальнейших исследованиях я нашел тему, которая обсуждает HtmlHelp Вызов API, который я использую (находится в CWinApp учебный класс). Говорится:

параметры

dwData Определяет дополнительные данные. Используемое значение зависит от значения параметра nCmd.

nCmd Указывает тип запрашиваемой помощи. Список возможных значений и их влияние на параметр dwData см. В параметре uCommand, описанном в разделе "О функции API HTMLHelp" в Windows SDK.

Таким образом, мы в конечном итоге здесь, где нам дают ссылку на детали о HH_DISPLAY_TOPIC, Мы прошли полный круг. При внимательном рассмотрении говорится:

Указывает скомпилированный файл справки (.chm) или конкретную тему в скомпилированном файле справки.

Чтобы указать определенный тип окна, вставьте символ больше (>), а затем имя типа окна.

Так что мой код все еще должен быть в порядке.

1 ответ

Решение

Вы не поверите, насколько простым было решение этой проблемы!

Я сделал тест с окном HTML Help Workship API:

Тестовое задание

Единственный, который работал, был, когда я использовал htm как суффикс а не html, Увидеть:

Результаты

Другие вопросы по тегам