Question

Dans presque toutes les applications Windows, je remarque que maintenir le bouton de la souris enfoncé dans une zone non-client provoque l'arrêt du dessin. Pourquoi est-ce nécessaire?

Par exemple, je possède une application Managed Direct 3D qui affiche un cube en rotation. Si je place le pointeur sur la barre de titre tout en maintenant le bouton de la souris enfoncé, le cube cesse de tourner, même si je n'ai pas codé cette condition dans ma boucle.

Pourquoi la peinture est-elle stoppée? Quels sont les bénéfices? Plus important encore, comment puis-je contourner ce problème?

Était-ce utile?

La solution

Lorsque vous cliquez sur la barre de titre, un une brève mettre en pause pendant que le gestionnaire de fenêtres tente de déterminer si vous cliquez ou commencez à faire glisser (déplacer la fenêtre). Si vous maintenez toujours le bouton enfoncé, le glissement s'effectue: le gestionnaire de fenêtres configure sa propre boucle de message et pompe les messages jusqu'à ce que vous relâchiez la souris. Votre fenêtre devrait toujours pouvoir traiter les messages, car ils seront toujours distribués, mais si votre animation dépend d'une boucle de messages personnalisée, vous serez bloqué jusqu'à la fin de la boucle de glisser-déposer modale.

Contournez-le en déclenchant votre animation en réponse à des messages: une minuterie me semble un bon choix.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top