Hilfe in Anwendung einbinden



  • Hallo

    Ich habe mit dem Tool "Help-Workshop" von Microsoft eine Hilfe-Datei (.hlp) erstellt und möchte diese nun in meine Anwendung einbinden.

    Nun habe ich gemerkt, dass beim betätigen der F1-Taste automatisch die Hilfe aufgerufen wird, jedoch kam eine Meldung dass die Hilfe-Datei nicht gefunden werden konnte. Nachdem ich meine Hilfe-Datei ins entsprechende Verzeichnis kopiert habe kam beim drücken von F1 die Meldung, dass das gesuchte Topic nicht gefunden werden konnte.

    Kann mir einer sagen, wie und wo ich einstellen kann, welche Hilfe-Datei und welches Topic etc. angezeigt werden beim drücken der F1-Taste ? Ich habe sonst nirgends Informationen darüber gefunden...



  • Dazu gab es hier mal was, aber die Suche kann man ja leider knicken. 😞

    Ich glaube, du brauchst eine cnt-Datei. Da stehen Zahlen drin, und zu welchem Thema bei welcher Zahl gesprungen werden soll.

    Wenn du was rausfindest, poste es bitte hier. 🙂



  • ja ich habe eine .cnt Datei. Ich dachte eigentlich die Zahlen darin sind für die verschiedenen Ebenen der einzelnen Kapiteln...
    wie auch immer, ehrlich gesagt weiss ich nicht genau was ich mit der Datei tun soll.
    ich meine, man müsste doch irgendwo im Visual C++ selber (z.B. bei den Projekt-Einstellungen) einstellen können welche Hilfe-Datei bzw. welches Kapitel verwendet wird ?



  • Also, das ist drei Jahre her, das ich mich damit beschäftigt habe und damals hatte ich Doc2Help, was einem ziemlich viel Arbeit abnimmt.

    Die Nummern werden irgendwie aus den Resourcenummern generiert.
    Schau dir auf jeden Fall mal den Befehl "WinHelp" an, um den dreht sich irgendwie alles. 🙂

    In der MSDN scheint ne ganze Menger drin zu stehen, ich überblicke das aber so auf die Schnelle nicht.



  • Bei mir geht das folgendermassen (kurz umrissen):

    Überblick:
    Die Projektdatei der Hilfe hat die Endung hpj. Da kann man auch doppeldraufklicken und sich z.B. die includes angucken. In der cnt-Datei ist die Baumstruktur der Hilfe gespeichert. Die eigentlichen Hilfetexte, die mal im Programm angezeigt werden sollen, stehen in vielen einzelnen rtf-Dokumenten (eins pro Hilfsthema). Dann gibt es noch eine txt-Datei, in der alle rtf-Dokumente vermerkt sind. Und es gibt eine hm-Datei, in der alle IDs der rtf-Dokumente mermerkt sind. Keine Ahnung, ob die txt- und hm-Dateien wirklich zwingend benötigt werden, könnte auch nur zur Sicherheit eingebunden worden sein (also hier bei mir jetzt).

    Neues Hilfethema erstellen:
    Zuerst muss ein rtf-Dokument mit dem entsprechenden Hilfetext erzeugt werden. Vor die Überschrift kommt die Zeichenkombination + K # $ und zwar im Schriftformat "hochgestellter Text" (es gibt da noch tausend andere Formatierungen wie z.B. doppelt unterstrichener Text oder verborgener Text, die Links oder sonstwas kennzeichnen). Unten auf der Seite werden eine eindeutige, zugehörige Dialognummer, eine eindeutige ID des Hilfetextes sowie zwei kurze Texte vergeben. Dabei kommt hier wieder die Zeichenkombination + K # $ als hochgestellter Text, allerdings nicht hintereinander sondern untereinander. Hinter das Pluszeichen kommt die Dialog-ID. Hinter das K kommt eine kurze Beschreibung. Hinter die Raute kommt die ID des Hilfetextes. Hinter das Dollarzeichen kommt die Überschrift. Ein Doppelklick auf die cnt-Datei öffnet die Baumstruktur im Hilfe-Compiler. Mit "Add Above" oder "Add Below" kann man neue Punkte hinzufügen. Durch auswählen eines Stils ordnet man das zugehörige Symbol zu ("Heading" für das Buchsymbol, "Topic" für das Fragezeichen). Eine Überschrift muss angegeben werden. Die ID, die man in dem rtf-Dokument unten angegeben hat, muss auch hier angegeben werden. Durch klicken auf OK wird das neue Thema in die Baumstruktur übernommen.

    Die Hilfe mit dem Programm verbinden:
    Das eigentliche Programm muss im Debug-Modus gestartet werden. Der Dialog, zu dem die entsprechende Hilfe angezeigt werden soll, muss aufgerufen werden. Dann die Taste F1 drücken. Im Ausgabefenster wird daraufhin die Dialog-ID angezeigt und zwar beginnend mit einem Dollar-Zeichen und einer fünfstelligen oktalen (oder ist es hexadezimalen ?!?) Zahl. Diese Zahl ohne das Dollar-Zeichen kopieren. In der hm-Datei muss die Hilfe-ID (entspricht der ID im rtf-Dokument ganz unten), die Dialog-ID (entspricht der soeben kopierten fünfstelligen Zahl) und eine frei wählbaren Pseudo-ID (zur Dokumentation) eingetragen werden. Vor die fünfstellige Zahl der Dialog-ID müssen die Zeichen 0x gestellt werden (was also vorhin etwa so aussah $1230F muss jetzt so eingetragen werden 0x1230F).

    Die Hilfe kompilieren:
    Kompiliert wird die Hilfe im Hilfe-Workshop durch einen Klick auf das Icon "Compile". Man erhält die Dateien *.cnt (enthält Informationen über die Baumstruktur) und *.hlp (enthält die Hilfetexte) die als spätere Hilfe dem Programm mitgegben werden müssen.

    [Ironie] Viel Spass. Auch ich habe damit immer viel Spass. [/Ironie]

    Gibt aber auch Alternativen. In dem oben angesprochenen Thread wurden solche genannt, wenn ich mich richtig erinnere...
    Das war der, glaube ich:
    http://www.c-plusplus.net/forum/search/log.php?url=http://www.c-plusplus.net/forum/viewtopic-var-t-is-101335.html
    Oder der ?
    http://www.c-plusplus.net/forum/search/log.php?url=http://www.c-plusplus.net/forum/viewtopic-var-t-is-90988.html
    Oder der ?
    http://www.c-plusplus.net/forum/search/log.php?url=http://www.c-plusplus.net/forum/viewtopic-var-t-is-87563.html

    😃



  • Gibts dazu was in der FAQ? Sonst bitte mal da hin verschieben. 👍



  • @isabeau: toller beitrag 👍

    @estartu_de: Vielen Dank, mit WinHelp sollte ich weiterkommen (wenn ich es dann mal begriffen habe)


Log in to reply