APIs: hWnd de contrôles |
Author(s) Dev Ashish |
|
(Q) Comment mettre la main sur la poignée d'un contrôle, en cours d'exécution?
(A) Les contrôles d'Access ne sont pas des contrôles du genre de ceux de
VB. Ceux d'Access sont tracés sur l'écran, en cours d'exécution et en tant
que tel, ne possèdent pas de handle (poignée) unique comme ceux de VB.
Lorsque un contrôle d'Access reçoit le focus, il devient une véritable fenêtre et il est alors possible d'en récupérer la poignée en utilisant la fonction API GetFocus. Par contre, puisque les contrôles d'Access ne se comportent pas du tout comme ceux de VB, il y a peu de choses qu'on peut faire avec cette poignée (handle).
Private Declare Function apiGetFocus Lib "user32" _
Alias "GetFocus" _
() As Long
Function fhWnd(ctl As Control) As Long
On Error Resume Next
ctl.SetFocus
If Err Then
fhWnd = 0
Else
fhWnd = apiGetFocus
End If
On Error GoTo 0
End Function
|