VB -40: WinHelp

Allzeit bereit...

Zu jeder Anwendung gehört eine Onlinehilfe. Der dazu benötigte HelpCompiler wird ab der Pro-Version mitgeliefert, er ist jedoch auch vom MS-Server ladbar. (Früher brauchte man dazu dennoch eine Lizenz, wie das inzwischen ist, weiß ich nicht.) Grundsätzlich ist das schon alles, was man an Rüstzeug braucht, viel einfacher geht es jedoch mit einem Help-Tool wie VBHelpWriter oder HelpPad .

Bleibt die Frage, wie wir unsere Hilfe im Programm aufrufen?

Eine Möglichkeit haben wir schon kurz gestreift: Die ShowHelp-Methode des CommonDialog-Controls. Geht es uns jedoch nur ums Aufrufen der Onlinehilfe, wäre das Control etwas überdimensioniert.

Ganz einfach geht es, wenn wir in unseren Projekteigenschaften den Namen der Hilfedatei "MatheMax.hlp" eintragen. Fortan genügt ein Klick auf die allseits bekannte F1-Taste und unsere Hilfe ist da.

Die meisten Anwendungen haben jedoch alternativ auch ein Hilfe-Menü, hier wollen wir nicht zurückstehen. Um per Befehl die Windowshilfe aufzurufen, nutzen wir unser neu erworbenes Wissen und bedienen uns eines API-Aufrufs:

     Declare Function WinHelp Lib "user32" Alias "WinHelpA" _
      (ByVal hwnd As Long, ByVal lpHelpFile As String, _
      ByVal wCommand As Long, ByVal dwData As Long) As Long
 

Die Konstanten:

Wir erweitern das Hilfemenü unserer Hauptform um den Punkt "mnuOnlinehilfe" und fügen den Aufruf ein:

     Private Sub mnuOnlinehilfe_Click()
     Dim rc As Long, HelpDatei As String
        HelpDatei = App.HelpFile
        rc = WinHelp(frmHauptForm.hwnd, HelpDatei, &H3, 0)
     End Sub
 

rc ist der Rückgabewert der Funktion. Wenn alles glatt läuft, braucht uns dieser nicht weiter zu interessieren.

HelpDatei ist der Name der Hilfedatei. Wir entnehmen ihn unseren Projekteigenschaften (App.HelpFile).

Mit frmHauptForm.hwnd übergeben wir das Handle unserer aufrufenden Form.

&H3 ist eine Konstante, die veranlaßt, daß das Inhaltverzeichnis unserer Hilfe angezeigt wird.

Da wir keine kontextsensitive Hilfe definieren wollen, übergeben wir nur die Konstante "0" als ContextID. Und das ist auch schon alles.

Wenn unser Anwender jetzt auf die F1-Taste drückt, bekommt er eine waschechte Onlinehilfe (naja, mein Beispiel ist etwas kurz geraten ), ebenso über das Hilfemenü.

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.