Хостинг справочного контента онлайн

Я пытаюсь упаковать некоторые из моих приложений MFC в приложения для Windows 10, используя Настольный мост.

У меня нет никаких проблем с включением моего файла справки HTML (CHM) и работой с установленной программой (новые версии VS не включают файл справки, и использование обходного пути для включения этого файла приводит к тому, что я не могу » не имеют права доступа).

Так что это заставляет меня задуматься о размещении онлайн-справки на моем сайте. Пара возникающих проблем заключается в том, как лучше разместить несколько разделов справки и как переопределить (на уровне приложения) поведение при доступе к разделам справки. (Мое приложение основано на диалогах.)

Так что я просто удивился, если кто-нибудь еще сделал это. Мне было бы любопытно рассмотреть, как решались эти проблемы. Я не смог ничего найти в Интернете.

3

Решение

Я размещаю свою справку html в одном документе, используя привязки html, чтобы добраться до интересующей темы. Если у вас есть несколько страниц, адаптируйте MyHelp соответственно.

Я на самом деле не использовал Desktop Bridge, но подумал, что вы пробовали что-то вроде этого:

BOOL CMyDialog::OnHelpInfo(HELPINFO* pHelpInfo)
{
MyHelp(_T("HIDD_MYDIALOG"));            // HTML anchor goes here
return CDialog::OnHelpInfo(pHelpInfo);
}

...

// a global helper function for showing help
void MyHelp(LPCTSTR anchor)
{
extern CMyApp theApp;
TCHAR *cp, buffer[1000];

// look for the html document in the program directory
strcpy(buffer, _T("file:///"));
DWORD dw = GetModuleFileName(theApp.m_hInstance, buffer + strlen(buffer), sizeof(buffer));

if (cp = strrchr(buffer, '\\'))
{
strcpy(cp+1, _T("MyHelpDocument.htm#"));
strcat(cp+1, anchor);

// for some reason, I don't want the default browser to open, just the Internet Explorer
ShellExecute(NULL, _T("open"), _T("iexplore"), buffer, NULL, SW_SHOWNORMAL);
// or, for real online help, use just '_T("http://myurl.com/myonlinehelpdocument.html#") + anchor'
// instead of 'buffer' and ommit all before ShellExecute()
}
}

Я не уверен, будет ли ShellExecute вести себя так же, как раньше в приложении магазина. Но наверняка найдется способ как-нибудь открыть URL. Возможно, вы захотите попробовать, если Internet Explorer ActiveX работает для отображения страниц справки внутри приложения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector