OVH Cloud OVH Cloud

coordonnées

4 réponses
Avatar
Bul
bonjour à tous,
un question de beubeu :
Private Declare Function GetPixel _
Lib "gdi32" _
(ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
les coordonnées retournées ne "correspondent" pas
aux objet.top .left, où me trompe-je ?
comment faire la "conversion" ( dans un sens ou dans l'autre ) ?
merci d'avance. @+

4 réponses

Avatar
Patrice Henrio
"Bul" a écrit dans le message de news:
dlf7l1$qhu$
bonjour à tous,
un question de beubeu :
Private Declare Function GetPixel _
Lib "gdi32" _
(ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
les coordonnées retournées ne "correspondent" pas
aux objet.top .left, où me trompe-je ?
comment faire la "conversion" ( dans un sens ou dans l'autre ) ?
merci d'avance. @+




The GetPixel function retrieves the red, green, blue (RGB) color value of
the pixel at the specified coordinates.

Donc on ne retourne pas des coordonnées mais une couleur.
Avatar
Pascal B.
Salut Bul,

Par défaut, les coordonées retournées par les controles sont en Twips (cela dépend de la propriété ScaleMode de l'object-parent
(Form ou PictureBox) qui contient le controle)
et ta fonction GetPixel utilise des coordonées en Pixels.

Pour connaitre le rapport entre Twips et Pixels, tu peux utiliser les propriétés de l'objet Screen:

Screen.TwipsPerPixelX
Screen.TwipsPerPixelY

Ou bien, tu peux changer le ScaleMode de l'object-parent. Dans ce cas, il n'y a plus conversion à faire.

Form1.ScaleMode = VbPixel


Cordialement
Pascal B.


"Bul" wrote in message news:dlf7l1$qhu$
| bonjour à tous,
| un question de beubeu :
| Private Declare Function GetPixel _
| Lib "gdi32" _
| (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
| les coordonnées retournées ne "correspondent" pas
| aux objet.top .left, où me trompe-je ?
| comment faire la "conversion" ( dans un sens ou dans l'autre ) ?
| merci d'avance. @+
|
|
Avatar
Guy DETIENNE
Salut ;O)

Pour compléter ce qu'a dit Pascal B., sache que les API de GDI32 travaillent
toujours en Pixels.
Donc il faut toujours bien veiller à convertir les coordonnées préalablement
sinon le résultat sera hasardeux.

Guy


"Bul" a écrit dans le message de
news:dlf7l1$qhu$
bonjour à tous,
un question de beubeu :
Private Declare Function GetPixel _
Lib "gdi32" _
(ByVal hdc As Long, ByVal X As Long, ByVal Y As Long) As Long
les coordonnées retournées ne "correspondent" pas
aux objet.top .left, où me trompe-je ?
comment faire la "conversion" ( dans un sens ou dans l'autre ) ?
merci d'avance. @+




Avatar
Bul
merci de vos réponses
ne retourne pas des coordonnées mais une couleur


je ne me suis pas tout à fait bien exprimé.
Screen.TwipsPerPixelX, Screen.TwipsPerPixelY


ça fonctionne parfaitement
Form1.ScaleMode = VbPixel


pas ça, si en dur dans les propriétés
ou sinon, VbPixel non défini
mais j'ai VB 5 .
les API de GDI32 travaillent toujours en Pixels.


tout est clair. merci encore. @+