jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 4 janv. 2008 à 11:10
Ouias...
Bon ... ce que tu veux dire s'exprimait tout simplement ainsi : capturer la portion d'une picturebox survolée par une image vide ...
alors :
Un projet avec :
une picturebox nommée picture1 et contenant l'image de ton choix
dans cette picturebox : un contrôle image vide et nommé image1 et avec son borderstyle = 1
en dehos de ta picturebox picture1 (en dessous, par exemple) une picturebox nommée picture2
et ce code :
Option Explicit
Dim XX As Single
Dim YY As Single
Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
Private Sub Form_Activate()
Me.ScaleMode = vbPixels
Image1.Height = Image1.Width
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
Picture2.Width = Image1.Width * 2
Picture2.Height = Image1.Height * 2
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
XX = Me.ScaleX(X, vbTwips, vbPixels)
YY = Me.ScaleY(Y, vbTwips, vbPixels)
End Sub
Private Sub Image1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
Image1.Left = Image1.Left - XX + Me.ScaleX(X, vbTwips, vbPixels)
Image1.Top = Image1.Top - YY + Me.ScaleY(Y, vbTwips, vbPixels)
StretchBlt Picture2.hdc, 0, 0, Picture2.Width, Picture2.Height, Picture1.hdc, Image1.Left, Image1.Top, Image1.Width, Image1.Height, vbSrcCopy
End If
End Sub
Exécute et vois ....
Ceci étan,t dit : j'ai personnellement utilisé la fonction
StretchBlt Lib
de l'Api de Windows. Tu peux parvenir au même résultat en la remplaçant par l'utilisation de PaintPicture de VB...
lenum1
Messages postés30Date d'inscriptiondimanche 10 juin 2007StatutMembreDernière intervention13 janvier 2008 4 janv. 2008 à 09:26
Ha pardon, donc enfaite j'ai une image (vide) qui se déplace sur une picture, et je voudrais capturer l'image pour voir ce que regarde l'image. C'est en langage VB6. Si c'est pas possible, et bien capturer a un endroit précis avec X et Y et pour la taille et bien celle de l'image J'espère avoir été explicite merci.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 4 janv. 2008 à 09:38
1) J'ai vraiment de grosses difficultés à comprendre ce que "regarderait" une image
2) je suppose que cette "image" qui se déplace est un contrôle image (vide) et que tu en connais donc les dimensions (Width et Height) ainsi que sa position (Left et Top)
Conclusion : je ne comprends rien à la raison de ta question, ni à ce que tu cherches à faire exactement !!!
lenum1
Messages postés30Date d'inscriptiondimanche 10 juin 2007StatutMembreDernière intervention13 janvier 2008 4 janv. 2008 à 10:37
Ok ok, oui je connais sa taille mais pas sa position, mais je peut connaitre sa position avec Image.Top et Left. Car enfaite l'image se déplace grâce à la souris. En cliquant l'image se déplace sur la case de la souris. En-dessous de l'image (vide) se trouve une picture (pleine) et je voudrais faire une capture où se trouve l'image pour voir se que sélectionne l'image. Si tu comprend toujours pas demande moi un screen car sa sera plus simple