私は自分のhtmlヘルプをhtmlアンカーを使用して単一のドキュメントにホストして、関心のあるトピックにアクセスします。複数のページがある場合は、それに応じてMyHelpを調整してください。
私は実際にデスクトップブリッジを使用していますが、このような何かをしようとしているのか疑問に思っていなかった。
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がアプリケーション内にヘルプページを表示するように動作する場合は、試してみるとよいでしょう。
chmファイルのトピックを表示しようとすると、__exactly__はどうなりますか? –
@MichaelWalz:私はさまざまな問題を解決しようとして1ヶ月以上費やしてきましたが、私はMicrosoftの人々と一緒に仕事をしてきました。要するに、CHMファイルがパッケージの一部としてインストールされないと、それが存在しなければ開くことができません。ファイルがコピーされてもファイルを開く権限がない場合、MFCはヘルプファイルを読み込めないという一般的なメッセージを表示します。私はこれらの多くの問題を引き続き調査していますが、ここではオンラインでヘルプコンテンツをホスティングすることについて話したいと思います。 –
私はCHMファイルをHTMLに変換するためにパッケージを使用しました(これはもう使用できません)。例:http://www.publictalksoftware.co.uk/msa/HelpOnline/ –