Dessiner une fenetre de zoom sur un picturebox en .net (rubber band)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 17 221 fois - Téléchargée 31 fois

Contenu du snippet

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

A voir également

Ajouter un commentaire

Commentaires

dorra004
Messages postés
9
Date d'inscription
vendredi 25 février 2011
Statut
Membre
Dernière intervention
22 mars 2011
-
Bonojour,
je veut selectionner une partie du code puis je veut la zoomer.
Pouvez-vous m'aider SVP?
Merci d'avance
svigneaux
Messages postés
2
Date d'inscription
mercredi 7 novembre 2007
Statut
Membre
Dernière intervention
25 janvier 2009
-
Salut

Peut on convertir ce programme pour du vb6?

Merci pour votre aide
cs_torpilleur
Messages postés
1
Date d'inscription
vendredi 2 mai 2008
Statut
Membre
Dernière intervention
30 mai 2008
-
super j'en ai besoin pour mon projet pour effectuer des zoom suivant ma sélection.MERCI!!
cs_ankou22
Messages postés
81
Date d'inscription
vendredi 3 novembre 2000
Statut
Membre
Dernière intervention
7 juin 2012
-
Super cool exactement ce que je cherchais....

9/10 c'est toujours bien un zip....

je viens de poser une source de capture d'une zone de l'ecran et c'est exactement ce que les commentaires me demandais de rajouter http://www.vbfrance.fr/code.aspx?ID=34354
En plus ca anime ...

Merci

ANKOU22
pinje
Messages postés
129
Date d'inscription
vendredi 25 juillet 2003
Statut
Membre
Dernière intervention
24 août 2006
-
Desole, je me suis peut etre mal exprime...

Ce code sert a dessiner un rectangle redimensionable avec la souris sur un picture box en .NET.

Un example se son application pourrait etre de faire une fenetre de zoom ou encore une fenetre de selection....

On clique gauche sur le Picture box, puis en maintenant le bouton enfonce et en bougeant la souris, ca dessine un rectangle qui ce redimensionne (voir l'apercu)...

Voila c'est tout!!

J'avais trouver pas mal de code source qui faisait ca sur une forme, mais pas sur un picture box...

PS: j'ai encore essayer de charger le zip, y veut toujours pas il me dit qu'il n'y a rien dedans, alors qu'il y a bien qquechose... Qqun a deja eut ce pb?

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.