Bonjour,
J'ai toujours eu dans mes fenêtres possédant un skin perso (application d'une région sur une fenêtre à partir d'un bitmap, puis affichage du bitmap dessus) un problème de drag de celles-ci : quand on bougeait la fenête, un geste rapide et le curseur sortait de la fenêtre, ne pouvant y re-rentrer que de la même manière.
J'explique ma méthode :
- Déclaration de variables RECT et POINT, ainsi que BOOL
- Enclenchement d'un timer pseudo-permanent (intervalle = 0ms)
- Si un évènement WM_LBUTTONDOWN est reçu, le booléen passe à TRUE
[le curseur en croix est chargé]- Par inversement, si WM_LBUTTONUP est reçu, il passe à FALSE
[le curseur normal est chargé]- A chaque timer, si le booléen est à TRUE, on récupère la position de la souris dans le POINT, on lui ajoute les coordonnées de la fenêtre (récupérées dans le RECT), et enfin, on change la position de la fenêtre avec ces coordonnées.
Auriez-vous une autre méthode, ou une précision pour pouvoir effectuer le drag plus rapidement ? Par exemple, MSN ou WMP restent "collés" à la souris, sans le moindre écart de pixel... comment "font-ils" ?
Merci d'avance.
Partager