Rectangle de selection [Résolu]

Messages postés
19
Date d'inscription
jeudi 15 mai 2008
Dernière intervention
6 février 2012
- - Dernière réponse : benji2000
Messages postés
78
Date d'inscription
samedi 26 août 2006
Dernière intervention
25 novembre 2016
- 21 déc. 2008 à 18:36
Bonjour à tous et à toutes!
Voila ma question!
Je voudrais créer un rectangle de sélection dans un picturebox!
Quelqu'un pourrait il m'aider?
Je vous en supplie  lol !!!
Merci d'avance.
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
3
Merci
Je serais toi je stockerais les coordonnées de ton dessin et si le rectangle de selection englobe les coordonnées alors tu deplace ton images en modifiant les coordonnées de l'image. Je sais pas si je suis clair ^^.

<hr />www.e-fitz.com
Encore plus de source et de tutoriels.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ciberrique
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
0
Merci
Bonjour, voici une solution possible,

crée un nouveau projet et dedans met un picture box nommé Picture1, voici le code à insérer dans la form :

Option Explicit


Dim oldX As Integer, oldY As Integer
Dim SavePic As PictureBox


Private Sub Form_Load()
    Set SavePic = Picture1
    Picture1.AutoRedraw = True
    Picture1.BackColor = vbWhite
End Sub


Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        SavePic.Picture = Picture1.Picture
        oldX = X
        oldY = Y
    End If
End Sub


Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Picture1.Picture = SavePic.Picture
        Picture1.Line (oldX, oldY)-(X, Y), vbBlue, B
    End If
End Sub


Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Picture1.Picture = SavePic.Picture
    End If
End Sub

En esperant que cela te seras utile.





<hr />

www.e-fitz.com

Encore plus de source et de tutoriels.
Commenter la réponse de ciberrique
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
21
0
Merci
Bonjour, ciberrique,

- ta réponse VB6 ne me parait pas réellement correspondre à la demande...
- mais, surtout : ton code est écrit pour VB6 et non pour VB.Net !!!
Commenter la réponse de jmfmarques
Messages postés
19
Date d'inscription
jeudi 15 mai 2008
Dernière intervention
6 février 2012
0
Merci
Merci Ciberrique pour ton code, mais il est vrai que ce n'est pas du VB.NET!
Je vais quand meme essayer de le transposer malgre que je sois débutant.
(Si tu sais comment on fait!!!)
Commenter la réponse de cs_plano
Messages postés
591
Date d'inscription
lundi 25 août 2003
Dernière intervention
18 juillet 2010
0
Merci
Ah oui j'ai pas fait attention effectivement c'est pas du .net, et le probleme est que je pourrais pas t'aider a transposer car je ne fais pas de .net par contre je vois pas ce qui ne correspond pas, de plus plutot de dire ca correspond pas donne une reponse mieu adapté.

<hr />www.e-fitz.com
Encore plus de source et de tutoriels.
Commenter la réponse de ciberrique
Messages postés
19
Date d'inscription
jeudi 15 mai 2008
Dernière intervention
6 février 2012
0
Merci
Alors voilà, j'ai trouvé comment faire un rectangle de sélection dont voici le code:
 '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

Maintenant j'ai un petit dessin:

Dim NewGraphic
As
Graphics = PictureBox1.CreateGraphics()

Dim blackPen
As

New
Pen(Color.Black, 1)NewGraphic.DrawRectangle(blackPen, 100, 100, 40, 20)

NewGraphic.DrawLine(blackPen, 130, 100, 110, 120)

Donc j'aimerai pouvoir sélectinner mon déssin avec ce fameux rectangle et le déplacer.

Comment je dois faire?

Merci à ceux qui me répondront!!!

 
Commenter la réponse de cs_plano
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Dernière intervention
22 août 2014
21
0
Merci
Tu sais maintenant, ciberrique, quelle était la véritable question :
Sélectionner une portion de dessin.
Sous VB6, PaintPicture ferait l'affaire (entre autres) : quid sous VB.Net ? (je n'en sais personnellement rien)
Commenter la réponse de jmfmarques
Messages postés
78
Date d'inscription
samedi 26 août 2006
Dernière intervention
25 novembre 2016
0
Merci
Bon travail il y a du code, mais on aboutit à quelque chose qui est très agréable et facile d'utilisation.
Merci beaucoup pour vos participations à ce sujet qui m'a était très utile.
Bonne prog à vous tous...

 DOVAX 
Commenter la réponse de benji2000

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.