Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

CoqBlog

.NET is good :-)
{ Blog de coq }

Actualités

IMessageFilter : événements MouseMove / MouseEnter / MouseLeave au niveau d'un contrôle, sans tenir compte des contrôles enfants

Les messages Windows, WM_MOUSE* dans notre cas, sont envoyés directement sur le contrôle concerné.
Si vous surchargez la méthode WndProc d'un contrôle "conteneur", vous ne verrez par conséquent pas les messages WM_MOUSEMOVE pour autant que le pointeur soit situé au dessus d'un contrôle enfant.
En gros les zones situées sous ces contrôles enfants sont des "zones mortes".
Pire, ce fonctionnement peut aussi être génant dans certains cas :
l'évènement MouseLeave sera par exemple déclenché si le curseur passe de la surface visible du contrôle conteneur à la surface d'un contrôle enfant.

Une solution pour éviter ces "zones mortes" peut être de passer par une implémentation de l'interface IMessageFilter dont on ajoutera une instance via Application.AddMessageFilter.

 

Si vous ne voyez pas trop ce dont je veux parler, téléchargez la source sur CSharpFR, et tester le mouvement de la souris au dessus d'un contrôle, avec et sans le CheckBox coché.

Dans l'exemple je change la couleur de fond du panel sur les events MouseEnter et MouseLeave (oui, j'ai piquer l'idée de Bidou ^^)

IMessageFilter : événements MouseMove / MouseEnter / MouseLeave au niveau d'un contrôle, sans tenir compte des contrôles enfants

EDIT : tout compte fait allez aussi voir le code sur CSharpFR, le blog encaisse (très) mal les blocs de code.

 

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: vendredi 6 janvier 2006 22:20 par coq
Classé sous : , ,

Commentaires

cyril a dit :

Finalement vaut peut etre mieux faire du js que win ca a l'air moins compliqué :

http://www.quirksmode.org/js/events_order.html ;)
# janvier 6, 2006 23:52

Bidou a dit :

Quelque chose me dit que je n'aurais jamais trouvé ça tout seul :-p
# janvier 7, 2006 11:42

BruNews a dit :

Pas que le JS, je dirais que même le C natif en direct API me semble nettement plus simple.
# janvier 7, 2006 12:25

coq a dit :

Tiens c'est marrant moi c'est justement l'inverse.
# janvier 9, 2006 22:39
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01