IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Bouton poussoir en continu


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 157
    Par défaut Bouton poussoir en continu
    Bonjour,

    Je cherche a reproduire le comportement d'un bouton poussoir: lorsqu'on le maintient enfonce, il execute en continu (avec une certaine frequence) une action jusqu'a ce qu'on le relache.

    Y a-t-il un moyen simple de faire ca?

    J'ai essaye en utilisant PreTranslateMessage, mais ca ne fonctionne pas vraiment: je n'arrive pas a forcer la re-detection de l'etat du bouton.

    La solution lourde serait d'utiliser un thread, mais franchement je pense que c'est un marteau pour ecraser une mouche.

    Suggestions?...

    Merci. Gorgo Treize.

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Tu peux peut-être essayer un timer (SetTimer(), KillTimer()), si sa précision te suffit...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 157
    Par défaut
    Merci, ca marche!

    Le seul probleme, c'est que quand je relache et re-appuie tres vite sur le bouton, il ne voit pas le message WM_LBUTTONDOWN (ca arrive trop souvent pour etre acceptable)!!

    Une solution?...

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    WM_LBUTTONDOWN pour démarrer ton timer.
    WM_LBUTTONUP pour l'arrêter.
    De mémoire (donc je vais peut être dire une bêtise), si tu traite ces deux messages sans passer par le traitement par défaut, tu ne devrais pas avoir le WM_LBUTTONDBLCLK qui est le risque si tu vas trop vite et peut masquer ton second WM_LBUTTONDOWN.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 157
    Par défaut
    Salut et merci,

    Citation Envoyé par 3DArchi Voir le message
    WM_LBUTTONDOWN pour démarrer ton timer.
    WM_LBUTTONUP pour l'arrêter.
    Oui c'est ce que je fais.

    De mémoire (donc je vais peut être dire une bêtise), si tu traite ces deux messages sans passer par le traitement par défaut, tu ne devrais pas avoir le WM_LBUTTONDBLCLK qui est le risque si tu vas trop vite et peut masquer ton second WM_LBUTTONDOWN.
    Qu'est ce que tu appelles "le traitement par défaut"?...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 157
    Par défaut
    En fait j'ai remarque qu'il ne passe jamais par le double click. Seulement par le click simple. Donc pour resumer, il voit bien le click, mais de temps en temps il ne voit pas le WM_LBUTTONDOWN.... D'ailleurs, c'est declenche comment la fonction OnClicked? (Il n'y a pas de message WM_ONCLICKED par exemple)

    ....donc y'a qqch que je ne comprends pas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [16F876] Interruption d'un bouton poussoir
    Par aminousse dans le forum Autres architectures
    Réponses: 0
    Dernier message: 02/03/2008, 23h14
  2. Réponses: 2
    Dernier message: 11/04/2007, 16h42
  3. J'ai besoin de bouton poussoir
    Par lgjean dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/10/2006, 10h06
  4. Boutons "Cancel" et "Continue"
    Par Romain93 dans le forum JSF
    Réponses: 2
    Dernier message: 25/07/2006, 14h45
  5. Source LaTeX : faire un bouton poussoir dans le PDF
    Par pierrot_latex dans le forum Editeurs / Outils
    Réponses: 3
    Dernier message: 24/02/2006, 14h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo