Problem mit WinHelp Aufruf



  • Hallo zusammen,

    ich hoffe ihr könnt mir helfen...

    Folgendes Problem: ich habe eine kompilierte Hilfedatei .chm vorliegen, die ich mit Hilfe der Funktion HtmlHelp(..) aufrufen möchte. Das Projekt ist nicht für Kontext-Sensitive-Hilfe vorbereitet worden, als es angelegt wurde ( nur so als Hinweis) und ich möchte bestimmte Topics aus dieser Hilfedatei aufrufen.

    Problem ist, dass folgender Aufruf für eine 2.0 Version der Hilfedatei funkioniert, allerdings nicht für die 1.1er.

    HtmlHelp( m_hWnd, helpFilePath, HH_HELP_CONTEXT, dwData);
    

    Ich habe auf diversen Seiten im Internet gesucht, aber keine Lösung gefunden, wie ich so einen Aufruf für die 1.1er Version machen muss. Es steht zwar irgendwo, dass die Topics für die älteren chm Versionen gemappt werden müssen, aber wie das genau funktioniert ist nirgendwo gut erklärt.

    Ich will doch nur die Hilfe mit einem bestimmte Topic aufrufen.. sollte doch nicht so schwer sein ( über die ID wohlgemerkt ). Oder unterstützt die ältere Hilfeversion überhaupt keinen Id-Aufruf und ich kann nur mit dem Topic-Namen den Aufruf machen!?

    Implementiert ist nur die OnHelpInfo-Funktion und mehr will auch nicht.. Ich bin echt am Verzweifeln und wäre sehr dankbar für jeden Beitrag, der ein bisschen Licht ins Dunkel bringt und mir mal erklären kann, was genau für ein Aufruf erwartet wird und wie das mit dem Mappen funktioniert, wenn ich es denn machen muss. ( An sich braucht es doch nicht mehr als die Topic-Id um die entsprechende Stelle anzuspringen oder ?)

    Vielen Dank schonmal für jeden noch so kleinen Denkansatz !!



  • Hallo Litte_Bird!

    Ich bin ein totaler MFC-Neuling und schlage mich seit ein paar Wochen mit zig MB fremden Code herum. UnterAnderem soll dort eine Hilfefunktion eingebunden werden.

    In einem kleinen Beispielprogramm funktioniert folgender Aufruf:

    HtmlHelp(NULL, "hilfe.chm::/kapitel.htm#topic", HH_DISPLAY_TOPIC, 0);

    Wenn du in der kapitel.htm einen entsprechenden Anchor gesetzt hast, kannst du über die Raute an die gewünschte Stelle springen.

    Gegenfrage:

    In meinem kleinen Testprogramm funktioniert dieser Aufruf, in dem eigentlichen Programm jedoch nicht. Es liegt sicherlich an dem ersten Parameter - ich blick es aber einfach nicht! Du übergibst dort m_hWnd, ist das ein Handle auf dein Hauptfenster? Wenn ich das mache, sehe ich nur für einen Moment die Sanduhr, sonst nix. Hast du eine Idee?

    Gruß psiems


Anmelden zum Antworten