jmfmarques
Messages postés
7666
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
19 janv. 2007 à 19:10
Bon... Ca t'intéresse et celà en interessera surment d'autres :
En VB6, donc :
sur une Form :
Une pictureBox Picture1 assez grande avec une image
dans cette picturebox : un contrôle image image1 de la taille de ton choix (pas trop grand, quand même)
en dessous de cette picturebox : une 2ème picturebox d'une taille plus petite que la picture1 mais plus grande que image1 (tu découvriras pourquoi)
Fonctionnement : tu lances et ty fais du drag de image1.
Tu vas vite comprendre comment adapter ce petit truc à ton problème actuel (tu n'as même pas besoin d'image1, si tu gères, en lieu et place, un rectangle fictif dont les largeur et hauteur sont des quotients des hauteur et largeur de Picture1)
Code :
Dim oux As Single
Dim ouy As Single
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC 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 dwRop As Long) As Long
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_Load()
Me.ScaleMode = vbPixels
Picture1.ScaleMode = vbPixels
Picture2.ScaleMode = vbPixels
End Sub
Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
oux = Me.ScaleX(X, vbTwips, vbPixels)
ouy = 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 - oux + Me.ScaleX(X, vbTwips, vbPixels)
Image1.Top = Image1.Top - ouy + 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
Il est clair que tu n'as pas non plus besoin de "Stretché", toi .