Связывание с конкретными темами в HelpnDoc, скомпилированном CHM с использованием Visual C ++ HtmlHelp - PullRequest
0 голосов
/ 12 июня 2018

Я запутался здесь.Я перенес свою справку по 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) ;

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

HtmlHelp

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

Обновление

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

Параметры

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

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

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

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

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

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

1 Ответ

0 голосов
/ 12 июня 2018

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

Я провел тест с окном API HTML Help Workship:

Test

Единственное, что сработало, это когда я использовал htm в качестве суффикса, а не html.См .:

Results

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...