Capture de la souris via setCapture
Bonjour.
J'ai un popup qui nécessite de tracker tous les click de la souris (surtout ceux en dehors de sa zone client ou non-cliente).
Pour se faire, j'utilise un hook sur la souris et cela marche trés bien.
Seulement, je trouve cela bien compliqué pour peu de chose alors que si je me réfère au doc msdn sur les Api, un setcapture devrait suffire.
Le soucis, c'est que celui-ci est apparemment sans effet (le control ne reçoit aucun message de la souris, comme WM_LBUTTONDOWN par exemple, si celle-ci est en dehors de sa zone client ou NC).
Tout ce que j'ai trouvé sur le setcapture sont des exemples à base de form et mon popup est un control basique.
Une idée ?
--> j'avance !
en faisant cela :
Code:
1 2 3 4 5 6 7 8
|
Protected Overrides Sub WndProc(ByRef m As Message)
Select Case m.Msg
Case eMsg.WM_NCHITTEST
ReleaseCapture()
SetCapture(Me.Handle) |
La capture fonctionne (une fois que j'ai leve hittest en passant sur le popup).
Ceci signifie donc qu'il se passe quelque chose entre le moment ou je positionne la capture et l'affichage définitif du popup (un autre control prend la capture ?).
Cdt.