Comme son nom l'indique, ce code sert a dessiner une fenetre de Zoom sur un PictureBox. Ce code est surtout destine aux personnes qui, comme moi, sont en train de passer du VB 6.0 a VB.NET...
Comme je n'avais pas trouver de code source sur ce site, je le poste...
Source / Exemple :
Il a pas voulu charger le zip, alor voila le code...
Il vous faut, une forme, sur laquelle vous ajoutez un PictureBox appele 'PictureBox1', vous lui mettez une jolie photo en image et vous ajoutez ca dans le code de la forme:
'==================================================================================
'Fonctions utilisees pour dessiner une Zooming window sur un Picture box
'==================================================================================
'Les coordonnees utilisees pour dessiner notre rectangle
Private Xstart, Ystart, Xend, Yend As Integer
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
'Si click gauche
If e.Button = MouseButtons.Left Then
'Initialisation des coordonnes
Xstart = e.X
Ystart = e.Y
Xend = e.X
Yend = e.Y
'Declaration du rectangle
Dim r As Rectangle
'On dessine le rectangle en utilisant la fonction RectangleToScreen
'qui convertie les coordonnes du rectangle par rapport a l'ecran
r = PictureBox1.RectangleToScreen(New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
'On dessine un rectangle inversee qui laissera visible l'interieur du rectangle
ControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed)
End If
'End If
End Sub
Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
'Quand clique gauche
If e.Button = MouseButtons.Left Then
'On efface l'ancien rectangle
Dim r As Rectangle
r = PictureBox1.RectangleToScreen(New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
ControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed)
'Nouvelles coordonnees de la souris quand on la bouge
Xend = e.X
Yend = e.Y
'On redessine le rectangle avec les nouvelles coordonnes de la souris
r = PictureBox1.RectangleToScreen(New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
ControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed)
End If
End Sub
Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
If e.Button = MouseButtons.Left Then
'On efface le dernier rectangle
Dim r As Rectangle
r = PictureBox1.RectangleToScreen(New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
ControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed)
End If
End Sub
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.