VB -41: HTMLHelp

Die moderne Alternative...

Immer mehr neuere Anwendungen bieten statt der herkömmlichen WinHelp die neuere HTML-Version an.

Das hat Vorteile:

Aber auch Nachteile:

*) Anmerkung: (hhctrl.ocx, shdocvw.dll) Hier bin ich mir aber nicht sicher. Die Dokumentation ist spärlich und ich habe keinen Rechner ohne IE4 um es zu testen. Vielleicht hat einer von Euch eine passende Konfiguration zum Testen?

Wir wollen die Alternative in unserem Projekt nutzen. Der Unterschied zu WinHelp ist nicht sonderlich groß, anstelle der WinHelp-API rufen wir die hhctrl.ocx auf:

     Declare Function HTMLHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
      (ByVal hwndCaller As Long, ByVal pszFile As String, _
      ByVal uCommand As Long, ByVal dwData As Long) As Long
 

Und auch der Aufruf im Programm sieht kaum anders aus:

     Private Sub mnuOnlinehilfe_Click()
     Dim HelpDatei As String, rc As Long

     Const HH_DISPLAY_TOPIC = &H0

        HelpDatei = App.HelpFile
        rc = HTMLHelp(frmHauptForm.hWnd, HelpDatei, HH_DISPLAY_TOPIC, 0)
     End Sub
 

Damit dies funktioniert, müssen wir natürlich auch in den Projekteigenschaften den Namen der Hilfe-Datei anpassen: MatheMax.chm.

Dabei stoßen wir auf einen Unterschied zwischen VB5 und 6:

VB6 erkennt chm-Dateien als Hilfedateien, VB5 noch nicht. Würden wir unsere Onlinehilfe jetzt aus einem VB5-Programm mit F1 aufrufen wollen, bekämen wir eine Fehlermeldung, unter VB6 funktioniert das tadellos. Doch mit einem kleinen Trick können uns wir auch bei VB5 aus der Klemme helfen:

Wir geben unserem Menüpunkt für die Onlinehilfe einen Hotkey "F1" mit und schon ist das Problem gelöst. (Alternativ könnten wir auch KeyPress abfragen.) Wenn wir jetzt F1 oder den Menüpunkt "Onlinehilfe" anklicken, kommt unsere neue HTML-Hilfe.

Beispielprojekt laden

zurück Index weiter


© Copyright 1998-2000 J.Behling EMail schreiben ABC-Ware's Homepage
Weitergabe und Druck (auch in Teilen, mit Ausnahme von Privatgebrauch) ohne ausdrückliche Genehmigung der Autorin untersagt.