Vanuit een applicatie waarin ik een formulier heb gedefinieerd roep ik mijn helpfile aan (in elkaar geklust met de HTMLHelp workshop). Met de onderstaande code werkt dit naar behoren, er gebeurt echter iets vreemds wat mij doet vermoeden dat er ergens iets fout zit in mijn code.
Nadat het helpbestand is aangeroepen en ik het weer heb gesloten laat de applicatie deze als het ware niet meer los. Ik kan het helpbestand niet meer verplaatsen of hernoemen. Ook als ik het formulier sluit van waaruit het helpbestand is aangeroepen verandert dit niet. Ik moet de complete applicatie sluiten voordat het helpbestand weer beschikbaar komt.
Ik heb geprobeerd in HelpEntry() zoiets als FormHelpFile = nothing in te voegen of na het echte helpbestand een dummy bestand aan te roepen maar dat helpt allemaal niets (en zelfs al zou het werken is dat laatste geen nette oplossing)
Heeft er iemand een idee waardoor het komt dat mijn helpbestand gegijzeld wordt zelfs nadat het formulier gesloten is?
Visual basic:
De onderstaande code wordt uitgevoerd vanuit het formulier.
Nadat het helpbestand is aangeroepen en ik het weer heb gesloten laat de applicatie deze als het ware niet meer los. Ik kan het helpbestand niet meer verplaatsen of hernoemen. Ook als ik het formulier sluit van waaruit het helpbestand is aangeroepen verandert dit niet. Ik moet de complete applicatie sluiten voordat het helpbestand weer beschikbaar komt.
Ik heb geprobeerd in HelpEntry() zoiets als FormHelpFile = nothing in te voegen of na het echte helpbestand een dummy bestand aan te roepen maar dat helpt allemaal niets (en zelfs al zou het werken is dat laatste geen nette oplossing)
Heeft er iemand een idee waardoor het komt dat mijn helpbestand gegijzeld wordt zelfs nadat het formulier gesloten is?
Visual basic:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| Option Explicit
'HTML help API
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
Const HH_DISPLAY_TOPIC = &H0
Const HH_SET_WIN_TYPE = &H4
Const HH_GET_WIN_TYPE = &H5
Const HH_GET_WIN_HANDLE = &H6
Const HH_DISPLAY_TEXT_POPUP = &HE
Const HH_HELP_CONTEXT = &HF
Const HH_TP_HELP_CONTEXTMENU = &H10
Const HH_TP_HELP_WM_HELP = &H11
'Get handle of active window
Public Declare Function GetActiveWindow Lib "user32" () As Long |
code:
1
2
3
4
5
6
7
8
9
10
| Public Sub Show_Help(HelpFileName As String, MycontextID As Long)
Dim hwndHelp As Long
'Get handle for active window
hwndHelp = GetActiveWindow()
'Call HTMLHelp
hwndHelp = HtmlHelp(hwndHelp, HelpFileName, _
HH_HELP_CONTEXT, MycontextID)
End Sub |
De onderstaande code wordt uitgevoerd vanuit het formulier.
code:
1
2
3
4
5
6
7
8
9
10
11
12
| Public Function HelpEntry() Dim FormHelpID As Long, FormHelpFile As String 'Help file location FormHelpFile = ThisDocument.Path & "\FLSAHelp.chm" 'Context ID FormHelpID = 2001 'Invoke the help window Show_Help FormHelpFile, FormHelpID End Function |