Hur du skapar popup-sammanhangsberoende hjälp med hjälp av Windows API WinHelp ()

Avancerat: kräver expert kodning, interoperabilitet och fleranvändarkunskaper.

En version av den här artikeln för Microsoft Access 97 finns i 141621.

Sammanfattning

Ett alternativ till att Visa programmets onlinehjälpsystem i ett separat fönster är att visa det i ett litet, skuggat popup-fönster i ditt program. Om du vill göra detta kan du använda funktionen Windows API WinHelp () med dess HELP_CONTEXTPOPUP argument. Den här artikeln visar hur du implementerar ett sådant hjälpsystem. I den här artikeln förutsätts det att du är bekant med hjälp workshopen i Microsoft Windows för att skapa Windows hjälpfiler.

Mer information

Funktionen Windows API WinHelp () stöder ett stort antal alternativ. Alternativet HELP_CONTEXTPOPUP öppnar ett skuggat popup-fönster där du kan visa hjälp. Det här fönstret liknar det fönster som öppnas när du klickar på en ordlista (grön, understruken text) i hjälpsystemet för Microsoft Access. Gör så här om du vill implementera den här funktionen:

  • Skapa ett fungerande hjälpsystem genom att ange egenskaperna Helpcontextid och Helpfile för formulären till en giltig Windows-hjälpfil.

  • Omdirigera F1-tangenten för att anropa en användardefinierad funktion som öppnar hjälpfilen med alternativet HELP_CONTEXTPOPUP.

Observera att hoppa eller förgrening till andra hjälpavsnitt från popup-fönstret hjälp inte stöds av de metoder som diskuteras i den här artikeln. Följande steg beskriver hur du skapar den användardefinierade funktionen för att öppna popup-fönstret Hjälp och hur du omdirigerar F1-tangenten: Varning: om du följer stegen i det här exemplet kan du ändra exempeldatabasen Northwind. mdb. Du kanske vill säkerhetskopiera filen Northwind. mdb och följa dessa steg på en kopia av databasen.

Åtkomst 2000, Access 2002 och Access 2003

  1. Starta Microsoft Access

  2. Öppna exempeldatabasen Northwind. mdb eller exempelprojektet NorthwindCS. ADP.

  3. Klicka på modulerunder avsnittet objekti databasfönstret.

  4. Klicka på ny.

  5. Skriv eller klistra in följande kod i deklarationsavsnittet i Visual Basic Editor:

    Declare Function WinHelp Lib "user32" Alias "WinHelpA" _                 (ByVal hwnd As Long, _                  ByVal lpHelpFile As String, _                  ByVal wCommand As Long, _                  ByVal dwData As Long) As LongPublic Const HELP_CONTEXTPOPUP = &H8&

    Du kanha vissa Microsoft Windows API-funktioner definierade i ett befintligt Microsoft Access-bibliotek. Därför kan dina deklarationer vara dubbletter. Om du får ett felmeddelande om duplicerade procedurnamn tar du bort eller kommenterar ut deklarations uttrycket i koden.

  6. Lägg till följande kod i Visual Basic Editor:

    Function Help32() As Boolean   On Local Error GoTo Help32_Err   Dim Cid As Long, Result As Long   On Error Resume Next   ' Get the HelpContextID of the active control.   ' The error is 2474 if no control is active.   Cid = Screen.ActiveControl.HelpContextId   If Cid = 0 Then      ' There is no control context ID, so check the form and get      ' the HelpContextID of the active form.      ' The error is 2475 if no form is active.      Cid = Screen.ActiveForm.HelpContextId   End If   ' If there is a context ID, open the Help file with context.   ' Specify your custom Help file for the second argument.   ' This example used the default help file NWIND9.HLP located   ' in the Office Samples folder.    ' If the NWIND9.HLP is not available, then replace the    ' specified path with a valid Winhelp file, and modify the code and     ' the HelpContextID of the Forms and Controls accordingly.   If Cid > 0 And Cid < 32767 Then      Result = WinHelp(Application.hWndAccessApp, _      "C:\Program Files\Microsoft Office\Office\Samples\nwind9.hlp", _      HELP_CONTEXTPOPUP, Cid)      Help32 = True   End IfHelp32_End:   Exit FunctionHelp32_Err:   MsgBox Err.Description   Resume Help32_EndEnd Function
  7. Spara modulen som hjälpmodul.

  8. Stäng Visual Basic Editor.

  9. Klicka på makronunder avsnittet objekti databasfönstret.

  10. Klicka på ny.

  11. Skapa följande nya makro för att omdirigera F1-nyckeln: Macro Name Action Action Arguments -------------------------------------------------------- {F1} RunCode Function Name: Help32()

  12. Spara makrot som AutoKeysoch stäng sedan makrot.

  13. Klicka på formulärunder avsnittet objekti databasfönstret.

  14. Dubbelklicka på leverantöreri den högra rutan.

  15. Tryck på F1-tangenten.

Observera att hjälpmeddelandet, som motsvarar helpContextID för kontrollen eller formuläret, visas i en popup-ruta i Microsoft Access.

Access 2007

  1. Starta Microsoft Access

  2. Öppna exempeldatabasen Northwind2007. accdb.

  3. Klicka på nedpilen under makropå fliken skapa och klicka sedan på modul.

  4. I Visual Basic Editor klistrar du in följande kodexempel i deklarationsavsnittet.

    Declare Function WinHelp Lib "user32" Alias "WinHelpA" _                 (ByVal hwnd As Long, _                  ByVal lpHelpFile As String, _                  ByVal wCommand As Long, _                  ByVal dwData As Long) As LongPublic Const HELP_CONTEXTPOPUP = &H8&

    Notera Du kan ha vissa Microsoft Windows API-funktioner definierade i ett befintligt Microsoft Access-bibliotek. Därför kan dina deklarationer vara dubbletter. Om du får ett felmeddelande om duplicerade procedurnamn tar du bort eller kommenterar ut deklarations uttrycket i koden.

  5. Lägg till följande kodexempel i Visual Basic Editor.

    Function Help32() As Boolean   On Local Error GoTo Help32_Err   Dim Cid As Long, Result As Long   On Error Resume Next   ' Get the HelpContextID of the active control.   ' The error is 2474 if no control is active.   Cid = Screen.ActiveControl.HelpContextId   If Cid = 0 Then      ' There is no control context ID, so check the form and get      ' the HelpContextID of the active form.      ' The error is 2475 if no form is active.      Cid = Screen.ActiveForm.HelpContextId   End If   ' If there is a context ID, open the Help file with context.   ' Specify your custom Help file for the second argument.   ' This example used the default help file NWIND9.HLP located   ' in the Office Samples folder.    ' If the NWIND9.HLP is not available, then replace the    ' specified path with a valid Winhelp file, and modify the code and     ' the HelpContextID of the Forms and Controls accordingly.   If Cid > 0 And Cid < 32767 Then      Result = WinHelp(Application.hWndAccessApp, _      "C:\Program Files\Microsoft Office\Office\Samples\nwind9.hlp", _      HELP_CONTEXTPOPUP, Cid)      Help32 = True   End IfHelp32_End:   Exit FunctionHelp32_Err:   MsgBox Err.Description   Resume Help32_EndEnd Function
  6. Spara modulen som hjälpmodul.

  7. Stäng Visual Basic Editor.

  8. Klicka på makropå fliken skapa .

  9. Skapa följande nya makro för att omdirigera F1-nyckeln: Macro Name Action Action Arguments -------------------------------------------------------- {F1} RunCode Function Name: Help32()

  10. Spara makrot som AutoKeys och stäng sedan makrot.

  11. Klicka på leverantörer i den vänstra rutan.

  12. Dubbelklicka på leverantörslistai den vänstra rutan.

  13. Tryck på F1-tangenten.

Observera att hjälpmeddelandet, som motsvarar helpContextID för kontrollen eller formuläret, visas i en popup-ruta i Microsoft Access.

Referenser

Om du vill veta mer klickar du på följande artikelnummer och visar artiklarna i Microsoft Knowledge Base:

828419 hur du skapar ett HTML-hjälpsystem med hjälp av antingen HTMLHELP-API eller HTML-hjälpen i Access

242433 hur du skapar sammanhangsberoende HTML-hjälpfiler

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Hur nöjd är du med översättningskvaliteten?

Vad påverkade din upplevelse?

Har du ytterligare feedback? (Valfritt)

Tack för din feedback!

×