Probleme avec un doevent et capture de touche

Signaler
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016
-
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016
-
Bonjour,

j'utilise (entre autre) :

Public Sub ProcessMessages()
    Dim Message As Msg
    mQuit = False
    Do: DoEvents
        Call WaitMessage
        If PeekMessage(Message, hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
            RaiseEvent HotKeyPressed(Message.wParam)
        End If
    Loop Until mQuit
End Sub

pour capturer une combinaison de touche (tout ceci proviens de reyhotkey.cls utilisée dans plusieurs sources sur le site.)
Mon probleme est le suivant :

j'ai une form de saisie que je force à rester afficher tant qu'une condition n'est pas remplie. mon forcage est pas beau :

do
    feuille.show
    doevents

loop until FeuilleUnload

 mais ça marche... :-p

Mon probleme est que lorsque je suis dans ce do .. loop mon catch de touche de marche pas. je ne saisi pas pourquoi le doevent de la boucle ne permet pas à la premiere boucle de s'éxecuter ???

Si quelqu'un avait une explication sur le phénomène ...

Merci

4 réponses

Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
bonjiour
EXTRAIT de l'aide sur DoEvents
Arrête momentanément l'exécution afin que le système d'exploitation puisse
traiter d'autres événements.

en clair DoEvents redonne la main au PC pour d'autres tâches  que ton programme mais pas pour une autre action dans ton programme
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016

non d'habitude quand j'utilise un dievent ça redonne la main à d'autres évenement du programme... appui sur bouton timer etc...
d'ailleur dans le cas présent j'ai un timer qui affiche l'heure qui continu de fonctionner sans probleme... le reste de l'appli fonctionne aussi juste ce scan de touche....!
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
maintenant plutot que
do: doevents
si tu fais
do
    doevents
et as tu testé en pas à pas pour voir si tu passes bien sur ta capture du clavier ?
Messages postés
139
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
15 mars 2016

meme phénomène en mettant de doevents à la ligne...

en pas à pas ça a été ma premiere verification, je  ne passe pas dans la procédure ... par contre dès que je sors de la boucle qui force la fenetre c'est bon ça ce remet dasn la boucle de "scan".
je me demande si cela ne vient pas du fait que cette procédure est dans une classe ???!!!