Herve_be
Messages postés1017Date d'inscriptionmercredi 4 août 2010StatutMembreDernière intervention25 avril 2024
-
Modifié le 8 janv. 2022 à 13:54
Herve_be
Messages postés1017Date d'inscriptionmercredi 4 août 2010StatutMembreDernière intervention25 avril 2024
-
8 janv. 2022 à 15:32
Bonjour,
Je capture la position de la souris au moment où on clique dans une PictureBox avec MouseDown puis je modifie le pixel en question avec SetPixelV, le code est très simple :
Private Sub Photo2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Photo2.DrawMode = vbInvert
Call SetPixelV(Photo2.hDC, X, Y, RGB(255, 255, 255))
Le pixel est un peu plus bas que l'endroit où j'ai cliqué !
Auriez-vous une explication ?
Herve_be
Messages postés1017Date d'inscriptionmercredi 4 août 2010StatutMembreDernière intervention25 avril 20242 Modifié le 8 janv. 2022 à 14:51
C'est ça.
Avec BorderStyle = 1 (Fixed single) il y a un décalage.
Avec BorderStyle = 0 (none) il n'y en a pas.
Sais-tu pourquoi ?
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 8 janv. 2022 à 15:21
Quand tu cliques c'est la position du curseur selon le bords extérieur du controle qui est pris en compte, mais quand tu définis un pixel c'est dans l'image, l'images est affectée par les bordures du controles.