Я пытаюсь упаковать некоторые из моих приложений MFC в приложения для Windows 10, используя Настольный мост.
У меня нет никаких проблем с включением моего файла справки HTML (CHM) и работой с установленной программой (новые версии VS не включают файл справки, и использование обходного пути для включения этого файла приводит к тому, что я не могу » не имеют права доступа).
Так что это заставляет меня задуматься о размещении онлайн-справки на моем сайте. Пара возникающих проблем заключается в том, как лучше разместить несколько разделов справки и как переопределить (на уровне приложения) поведение при доступе к разделам справки. (Мое приложение основано на диалогах.)
Так что я просто удивился, если кто-нибудь еще сделал это. Мне было бы любопытно рассмотреть, как решались эти проблемы. Я не смог ничего найти в Интернете.
Я размещаю свою справку 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 работает для отображения страниц справки внутри приложения.
Других решений пока нет …