Probleme avec un doevent et capture de touche

cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016 - 16 avril 2008 à 17:03
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016 - 17 avril 2008 à 09:02
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

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
16 avril 2008 à 18:00
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
0
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016
16 avril 2008 à 19:06
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....!
0
pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
16 avril 2008 à 19:13
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 ?
0
cs_got Messages postés 139 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 15 mars 2016
17 avril 2008 à 09:02
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 ???!!!
0
Rejoignez-nous