se creează ajutor contextual de tip pop-up utilizând Windows API WinHelp ()


Advanced: necesită codificare expert, interoperabilitate și abilități multiutilizator.
Pentru o versiune Microsoft Access 97 a acestui articol, consultați 141621 .

Rezumat


O alternativă la afișarea sistemului de ajutor online al aplicației într-o fereastră separată este să o afișați într-o fereastră pop-up mică și umbrită din aplicație. Pentru aceasta, aveți posibilitatea să utilizați funcția Windows API WinHelp () cu argumentul său HELP_CONTEXTPOPUP. Acest articol vă arată să implementați un astfel de sistem de ajutor. Acest articol presupune că sunteți familiarizat cu utilizarea atelierului de ajutor Microsoft Windows pentru a crea fișiere de ajutor Windows.

Mai multe informații


Funcția Windows API WinHelp () suportă un număr mare de opțiuni. Opțiunea HELP_CONTEXTPOPUP deschide o fereastră pop-up umbrită în care se poate afișa ajutorul. Această fereastră este similară cu fereastra care se deschide când faceți clic pe o intrare în glosar (text verde, subliniată) în sistemul de ajutor Microsoft Access. Pentru a implementa această caracteristică, urmați acești pași:
  • Creați un sistem de ajutor de lucru prin setarea Helpcontextid și helpfile Properties pentru formularele într-un fișier de ajutor Windows valid.
  • Redirecționați tasta F1 pentru a apela o funcție definită de utilizator care deschide fișierul ajutor utilizând opțiunea HELP_CONTEXTPOPUP.
Rețineți că saltul sau ramificarea la alte subiecte de ajutor din fereastra de ajutor pop-up nu este acceptată de metodele discutate în acest articol. Următorii pași descriu se creează funcția definită de utilizator pentru a deschide fereastra de ajutor pop-up și să redirecționați tasta F1: atenție: dacă urmați pașii din acest exemplu, modificați baza de date eșantion Northwind. mdb. Poate doriți să spate sus Northwind. mdb fișier și urmați acești pași pe o copie a bazei acoperire de date.

Access 2000, Access 2002 și Access 2003

  1. Pornirea Microsoft Access
  2. Deschideți baza de date eșantion Northwind. mdb sau proiectul eșantion NorthwindCS. adp.
  3. În fereastra bază de date, sub secțiunea obiecte, faceți clic pe module.
  4. Faceți clic pe nou.
  5. În editorul Visual Basic, tastați sau lipiți următorul cod în secțiunea declarații:
    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&
    Notă: este posibil să aveți unele funcții Microsoft Windows API definite într-o bibliotecă Microsoft Access existentă; prin urmare, declarațiile dumneavoastră pot fi duplicate. Dacă primiți un mesaj de eroare de nume de procedură duplicat, eliminați sau comentați declarația de declarații în cod.
  6. Adăugați următorul cod în editorul Visual Basic:
    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. Salvați modulul ca helpmodule.
  8. Închideți editorul Visual Basic.
  9. În fereastra bază de date, sub secțiunea obiecte, faceți clic pe macrocomenzi.
  10. Faceți clic pe nou.
  11. Creați următoarea macrocomandă nouă pentru a redirecționa tasta F1:
       Macro Name     Action       Action Arguments   --------------------------------------------------------      {F1}        RunCode      Function Name: Help32() 
  12. Salvați macrocomanda ca AutoKeys, apoi închideți macrocomanda.
  13. În fereastra bază de date, sub secțiunea obiecte, faceți clic pe formulare.
  14. În panoul din dreapta, faceți dublu clic pe furnizori.
  15. Apăsați tasta F1.
Observați că Microsoft Access afișează mesajul de ajutor, corespunzător helpContextID controlului sau formularului, într-o casetă pop-up.

Acces 2007

  1. Pornirea Microsoft Access
  2. Deschideți baza de date eșantion Northwind2007. accdb.
  3. În fila Creare , faceți clic pe săgeata în jos de mai jos macro, apoi faceți clic pe modul.
  4. În editorul Visual Basic, lipiți următorul exemplu de cod în secțiunea declarații.
    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&
    Notă Este posibil să aveți unele funcții Microsoft Windows API definite într-o bibliotecă Microsoft Access existentă; prin urmare, declarațiile dumneavoastră pot fi duplicate. Dacă primiți un mesaj de eroare de nume de procedură duplicat, eliminați sau comentați declarația de declarații în cod.
  5. Adăugați următorul exemplu de cod în editorul Visual Basic.
    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. Salvați modulul ca HelpModule.
  7. Închideți editorul Visual Basic.
  8. În fila Creare , faceți clic pe macrocomandă.
  9. Creați următoarea macrocomandă nouă pentru a redirecționa tasta F1:
       Macro Name     Action       Action Arguments   --------------------------------------------------------      {F1}        RunCode      Function Name: Help32() 
  10. Salvați macrocomanda ca taste automate, apoi închideți macrocomanda.
  11. Faceți clic pe furnizori în panoul din stânga.
  12. În panoul din stânga, faceți dublu clic pe lista furnizorilor.
  13. Apăsați tasta F1.
Observați că Microsoft Access afișează mesajul de ajutor, corespunzător helpContextID controlului sau formularului, într-o casetă pop-up.

Referințe


Pentru informaţii suplimentare, faceţi clic pe următoarele numere de articole pentru a le vizualiza în Baza de cunoştinţe Microsoft:
828419 de a crea un sistem de ajutor html utilizând fie HTMLHELP API sau HTML ajutor în Access
242433 se creează fișiere de ajutor html sensibile la context