Comment rester dans un sub , temps que le bouton de la souri est bas?

Signaler
Messages postés
23
Date d'inscription
mercredi 23 février 2005
Statut
Membre
Dernière intervention
13 décembre 2010
-
Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Statut
Membre
Dernière intervention
2 août 2012
-
bonjour a tous

je cherche a rester dans un sub (Form_MouseDown par exemple)pour lancer une boucle et a en sortir au relacher du bouton de la souri.




je voudrai eviter de passer par un timer

si il existe la reponse a cette question dans le forum , je ne la trouve pas.

merci a tous

4 réponses

Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
Salut,

dans une form ou pour un contrôle il existe les evenements MouseUp et MouseDown. Mais cela se limite un l'un ou l'autre. Tu pourrais dans ce cas creer une classe qui gere les evenements de tout les controles contenu dans la form mais il y plus simple.

Il existe une API "GetKeyState" qui renvois l'etat du clic Up, Down ou toggled. Y a un exemple d'utilisation de cette API sur ALLAPI.net

A+
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
re,

une petite précision : l'exemple passe par un hook du clavier mais cela fonctionne aussi avec un hook de la souris

A+
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
10
re,

un exemple ici en VB.net mais qui doit fonctionner en VB6


Bye
Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Statut
Membre
Dernière intervention
2 août 2012

re,
exemple dans le logiciel de allapi pour vb6 :
'In a module
Public Const WH_KEYBOARD = 2
Public Const VK_SHIFT = &H10
Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long
Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long
Public hHook As Long
Public Function KeyboardProc(ByVal idHook As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    'if idHook is less than zero, no further processing is required
    If idHook < 0 Then
        'call the next hook
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    Else
        'check if SHIFT-S is pressed
        If (GetKeyState(VK_SHIFT) And &HF0000000) And wParam = Asc("S") Then
            'show the result
            Form1.Print "Shift-S pressed ..."
        End If
        'call the next hook
        KeyboardProc = CallNextHookEx(hHook, idHook, wParam, ByVal lParam)
    End If
End Function

'In a form, called Form1
Private Sub Form_Load()
    hHook = SetWindowsHookEx(WH_KEYBOARD, AddressOf KeyboardProc, App.hInstance, App.ThreadID)
End Sub
Private Sub Form_Unload(Cancel As Integer)
    'remove the windows-hook
    UnhookWindowsHookEx hHook
End Sub



Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)