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

C++Builder Discussion :

Comment vider la pile des Messages ?


Sujet :

C++Builder

  1. #1
    Membre habitué Avatar de monnoliv
    Homme Profil pro
    Opticien-ébéniste: lunettes de WC
    Inscrit en
    Août 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Opticien-ébéniste: lunettes de WC

    Informations forums :
    Inscription : Août 2003
    Messages : 139
    Points : 195
    Points
    195
    Par défaut Comment vider la pile des Messages ?
    Bonjour,

    Voici mon problème:
    Sur l'évennement OnMouseWheel, j'effectue un long traitement + update graphique. Lorsqu'un second message OnMouseWheel arrive alors que le traitement n'est pas terminé, Windows le met dans une pile et ainsi de suite pour les messages suivants. Résultat: lorsqu'un utilisateur arrête de jouer avec la roulette de sa souris, il continue de voir des update graphiques le temps pour Windows de vider la pile de messages.
    Question: n'y a t-il pas une fonction que je pourrais appeler à la fin du long traitement pour annuler tous les messages concernant la souris.

    Merci,
    IoT CC3200, ESP8266
    8051, ARM Cortex-M (forever)/Cortex A (TI, Silabs, NXP), FPGA, Bare Metal Raspberry-PI programming
    VHDL-ALTERA-XILINX

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 8
    Points : 10
    Points
    10
    Par défaut
    Salut,

    Ne peux-tu pas utiliser la méthode "ProcessMessages" de TApplication pour que la pile de messages soit vidée au fur et à mesure ?

  3. #3
    Membre habitué Avatar de monnoliv
    Homme Profil pro
    Opticien-ébéniste: lunettes de WC
    Inscrit en
    Août 2003
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Opticien-ébéniste: lunettes de WC

    Informations forums :
    Inscription : Août 2003
    Messages : 139
    Points : 195
    Points
    195
    Par défaut
    Merci de ta réponse.

    En fait j'ai cherché et j'ai trouvé la solution:

    Exemple pour enlever l'événemment OnMouseWheel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     MSG mesmsg; bool notempty = true;
     while (notempty)
      notempty = PeekMessage(&mesmsg, Handle, WM_MOUSEWHEEL, WM_MOUSEWHEEL, PM_REMOVE);

    Exemple pour enlever tous les événemments relatifs à la souris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     MSG mesmsg; bool notempty = true;
     while (notempty)
      notempty = PeekMessage(&mesmsg, Handle, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE);
    Salutations,
    IoT CC3200, ESP8266
    8051, ARM Cortex-M (forever)/Cortex A (TI, Silabs, NXP), FPGA, Bare Metal Raspberry-PI programming
    VHDL-ALTERA-XILINX

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/11/2012, 15h12
  2. Traitement/taille pile des message/événements
    Par stephane.julien dans le forum C#
    Réponses: 6
    Dernier message: 22/06/2011, 13h47
  3. [Struts] Comment afficher des messages de confirmation
    Par vallica dans le forum Struts 1
    Réponses: 8
    Dernier message: 28/04/2006, 14h25
  4. Réponses: 4
    Dernier message: 28/03/2005, 19h42

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