flishflash
Messages postés18Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention10 janvier 2005
-
23 juin 2004 à 18:21
flishflash
Messages postés18Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention10 janvier 2005
-
23 juin 2004 à 21:41
Bonsoir,
Je voudrais pouvoir détecter l'appui sur le bouton de la souris à n'importe quel endroit de mon application, dans n'importe quelle fenêtre sans devoir mettre des mousedown partout. Est-ce possible ? Cela se fait-il par l'intermédiaire d'une API ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013129 23 juin 2004 à 19:12
Il te suffit de capturer les événements souris sur une fenêtre (ou un contrôle) avec la fonction API SetCapture, puis de rediriger l'événement KetDown par la suite à la fenêtre qui doit recevoir le message.
Pour plus d'info sur cette fonction, ou pour un exemple concret, je te conseille de télécharger ProgOtoP API Viewer.
Ds un module (juste pour que ce soit utilisable partout :
Public Const Pressed = -32767
Public Declare Function GetAsyncKeyState Lib "User32" (ByVal vKey As Long) As Integer
Ds ta form principale ou tes autres forms :
Un timer nommé timer1 et ...
Private Sub Timer1_Timer()
' Bouton gauche de la souris
If GetAsyncKeyState(vbKeyLButton) = Pressed Then
'Ton code
' Par exemple
MsgBox "Bouton de gauche"
Unload Me
End If
' Bouton droit de la souris
If GetAsyncKeyState(vbKeyRButton) = Pressed Then
'Ton code
' Par exemple
MsgBox "Bouton de droite"
Unload Me
End If
' Bouton milieu de la souris
If GetAsyncKeyState(vbKeyMButton) = Pressed Then
'Ton code
' Par exemple
MsgBox "Bouton du milieu"
Unload Me
End If
End Sub
Ce que j'ai mis ds les if .... c juste pour que tu testes.