OVH Cloud OVH Cloud

Position de la souris sur un control

6 réponses
Avatar
Zorro
Bonjour,
Apparemment le message WM_LBUTTONDOWN n'est transmis à la procédure d'une
boîte de dialogue que si le curseur est sur une zone de la Client Area qui
n'est pas une partie d'un control. Si je veux savoir à quelle position par
rapport au bord d'un static picture control se trouve la souris au moment

l'on clique, que dois-je faire? J'ai vu qu'apparemment un message
WM_COMMAND
avec STN_CLICKED et dans le lParam le handle du static est notifié, mais
comme récupérer alors la position du curseur dans le static?
Merci
David


--
Ma Boîte de Réception est protégée par SPAMfighter
475 e-mails spam ont été bloqués jusqu'à maintenant.
Téléchargez au jour d'hui gratuitement SPAMfighter!

6 réponses

Avatar
Aurelien Regat-Barrel
Zorro a écrit :
Bonjour,
Apparemment le message WM_LBUTTONDOWN n'est transmis à la procédure d'une
boîte de dialogue que si le curseur est sur une zone de la Client Area qui
n'est pas une partie d'un control. Si je veux savoir à quelle position par
rapport au bord d'un static picture control se trouve la souris au moment

l'on clique, que dois-je faire? J'ai vu qu'apparemment un message
WM_COMMAND
avec STN_CLICKED et dans le lParam le handle du static est notifié, mais
comme récupérer alors la position du curseur dans le static?
Merci
David



Si j'ai bien compris le comportement par défaut du STATIC ne te convient
pas. Donc il faut te le personnaliser, donc faut subclasser.

--
Aurélien Regat-Barrel
Avatar
Zorro
Bah en fait, j'aimerais seulement savoir la coordonnée x du curseur dans le
static control: il n'y a pas de message ou notification par défaut qui donne
la coordonnée du curseur de la souris dans un control static?
Ou alors est il possible de définir une proc pour le control pour pouvoir
intercepter la notification WM_LBUTTONDOWN?
Merci
"Aurelien Regat-Barrel" a écrit dans le message
de news:42fb19f4$0$22468$
Zorro a écrit :
> Bonjour,
> Apparemment le message WM_LBUTTONDOWN n'est transmis à la procédure


d'une
> boîte de dialogue que si le curseur est sur une zone de la Client Area


qui
> n'est pas une partie d'un control. Si je veux savoir à quelle position


par
> rapport au bord d'un static picture control se trouve la souris au


moment
> où
> l'on clique, que dois-je faire? J'ai vu qu'apparemment un message
> WM_COMMAND
> avec STN_CLICKED et dans le lParam le handle du static est notifié, mais
> comme récupérer alors la position du curseur dans le static?
> Merci
> David

Si j'ai bien compris le comportement par défaut du STATIC ne te convient
pas. Donc il faut te le personnaliser, donc faut subclasser.

--
Aurélien Regat-Barrel


Avatar
Aurelien Regat-Barrel
Zorro a écrit :
Ou alors est il possible de définir une proc pour le control pour pouvoir
intercepter la notification WM_LBUTTONDOWN?



Oui, ça s'appelle le subclassing : SetWindowLong( GWL_WNDPROC )...

--
Aurélien Regat-Barrel
Avatar
Zorro
D'ac merci beaucoup... désolé mon utilisation des windows est assez limitée,
j'ai passé plus de temps avec le C à programmer OpenGL...
Merci encore
David

"Aurelien Regat-Barrel" a écrit dans le message
de news:42fb22de$0$7476$
Zorro a écrit :
> Ou alors est il possible de définir une proc pour le control pour


pouvoir
> intercepter la notification WM_LBUTTONDOWN?

Oui, ça s'appelle le subclassing : SetWindowLong( GWL_WNDPROC )...

--
Aurélien Regat-Barrel


Avatar
Christian ASTOR
Zorro wrote:
J'ai vu qu'apparemment un message
WM_COMMAND avec STN_CLICKED et dans le lParam le handle du static est notifié, mais
comme récupérer alors la position du curseur dans le static?



GetMessagePos()-ScreenToClient()
(mais plutôt comme a dit Aurélien, subclassing (plus classique))
Avatar
Zorro
merci
"Christian ASTOR" a écrit dans le message de
news:42fbb808$0$26063$
Zorro wrote:
> J'ai vu qu'apparemment un message
> WM_COMMAND avec STN_CLICKED et dans le lParam le handle du static est


notifié, mais
> comme récupérer alors la position du curseur dans le static?

GetMessagePos()-ScreenToClient()
(mais plutôt comme a dit Aurélien, subclassing (plus classique))