Modifier la taille d'une PictureBox

Résolu
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007 - 21 mai 2005 à 16:06
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007 - 22 mai 2005 à 19:22
Bonjour à tous
je cherche à agrandir une PictureBox en mode RunTime en m'aidant de poignée
Pour la poignée pas de soucis elle apparait elle se place là ou je veux elle se déplace
en revanche pour faire en sorte que la PictureBox s'agrandisse en même temps que la poignée là je boque
Comme la finalité est de pouvoir déplacer et agrandir aussi bien une PictureBox ou un contrôle Text je suis contrain de fonctionner en ScaleMode: Twips
Quelqu'un a une idée?
Pour info voici le code que j'emploi pour faire bouger la PictureBox et Positionner la poignée
avec pour poignée une PictureBox de 100 x 100

Position de la poigné au milieu bas de l'image:
Private Sub Picture1_Click()
Poignée.Visible = True
Poignée.Move Picture1.Left + Picture1.Width / 2 - Poignée.Width / 2, Picture1.Top + Picture1.Height
End Sub

Mouvement de la poignée dans le sens vertical:
Private Sub Poignée_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
If Button = 1 Then
Bouger1 = (Y - L1.Caption) 'Utilise un Label pour se déplacer vers le Haut et vers le Bas
'Déplacement
Poignée.Top = Poignée.Top + (Bouger1)
Exit Sub
End If 'fin
L1 = Y 'Assure le déplacement de Haut en bas <->
End Sub

7 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
22 mai 2005 à 15:25
bizarre, chez moi ça marche ??

j'ai autre chose, sans poignée, sans rien, les deux côtés droite et bas, et le coin correspondant



Option Explicit



Dim XX As Long

Dim YY As Long

Dim Pointer As Long



Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Pointer = 0

End Sub



Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)



If Button <> 1 Then

Pointer = 0

If X > Picture1.Width - 150 Then

XX X: Pointer 9

End If

If Y > Picture1.Height - 150 Then

YY Y: If Pointer 0 Then Pointer = 7 Else Pointer = 8

End If

Else

If Pointer 9 Or Pointer 8 Then

Picture1.Width Picture1.Width + X - XX: XX X

End If

If Pointer 7 Or Pointer 8 Then

Picture1.Height Picture1.Height + Y - YY: YY Y

End If

End If



Picture1.MousePointer = Pointer



End Sub



Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

Pointer = 0

Picture1.MousePointer = 0

End Sub


Daniel
3
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
21 mai 2005 à 17:51
Bonjour,

J'ai légèrement modifié ton code, il reste à fignoler pour la poignée.



Option Explicit

Private Sub Picture1_Click()

Poignée.Visible = True

Poignée.Move Picture1.Left + Picture1.Width / 2 - Poignée.Width / 2, Picture1.Top + Picture1.Height

End Sub



'Mouvement de la poignée dans le sens vertical:

Private Sub Poignée_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Dim Bouger1



On Error Resume Next

If Button = 1 Then

Bouger1 = (Y - L1.Caption) 'Utilise un Label pour se déplacer vers le Haut et vers le Bas

'Déplacement

Poignée.Top = Poignée.Top + (Bouger1)

Exit Sub

End If 'fin

L1 = Y 'Assure le déplacement de Haut en bas <->

Picture1.Height = Poignée.Top

End Sub



jpleroisse
0
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007
21 mai 2005 à 23:18
Y a de l'idée mais le déplacement est trop important et de plus il ne
suis pas les mouvements de la poignée certainement du au fait d'avoir
le Scale Mode en Twips

Il faudrait fiare en sorte de pouvoir passer en Pixels juste le temps du redimenssionement

si quelqu'un à une idée
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
22 mai 2005 à 00:05
OK, en attendant, tu peux essayer aussi cette méthode.



Place un VScroll sur ta Form et place ce code



Private Sub Form_Load ()

VScroll1.Height = 975

VScroll1.LargeChange = 100

VScroll1.Max = 3750

VScroll1.Min = 1000

VScroll1.SmallChange = 50

VScroll1.Width = 255

End Sub



Private Sub VScroll1_Change()

Picture1.Height = VScroll1.Value

Picture1.Top = (Form1.Height / 2) - (Picture1.Height / 2) - 300

End Sub



Private Sub VScroll1_Scroll()

Call VScroll1_Change

End Sub



jpleroisse

PS: (Je continue à chercher pour ton code avec la poignée.)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
22 mai 2005 à 01:05
Option Explicit



Dim XX As Long

Dim YY As Long



Private Sub Form_Load()

VPoignée.Visible = True

VPoignée.BackColor = vbBlack

VPoignée.Move Picture1.Left, Picture1.Top + Picture1.Height - 30, Picture1.Width - 15, 30

VPoignée.MousePointer = 7

Hpoignée.Visible = True

Hpoignée.BackColor = vbBlack

Hpoignée.Move Picture1.Left + Picture1.Width - 30, Picture1.Top, 30, Picture1.Height - 15

Hpoignée.MousePointer = 9

End Sub



Private Sub Hpoignée_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

XX = X

End Sub



Private Sub Hpoignée_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

Hpoignée.Left = Hpoignée.Left + X - XX

Picture1.Width = Picture1.Width + X - XX

VPoignée.Width = VPoignée.Width + X - XX

End If

End Sub



Private Sub Vpoignée_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

YY = Y

End Sub



Private Sub Vpoignée_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If Button = 1 Then

VPoignée.Top = VPoignée.Top + Y - YY

Picture1.Height = Picture1.Height + Y - YY

Hpoignée.Height = Hpoignée.Height + Y - YY

End If

End Sub


Daniel
0
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007
22 mai 2005 à 10:46
Merci pour vos réponses

En ce qui concerne le code de Daniel cela ne donne rien

Je vais essayer le Vscroll pour voir
0
cs_marsouin Messages postés 62 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 21 janvier 2007
22 mai 2005 à 19:22
Ok cela marche je vais essayer de pofiner le code pour rajouter les poignées histoire de l'adapter à mes besoins

Merci encore
0
Rejoignez-nous