IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

dessin losange remplit dans un picture box


Sujet :

VB 6 et antérieur

  1. #1
    scr
    scr est déconnecté
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 127
    Points : 143
    Points
    143
    Par défaut dessin losange remplit dans un picture box
    Quelqu'un connaitrait il un moyen de dessiner un losange plein dans un picture box ?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 290
    Points : 374
    Points
    374
    Par défaut
    Bonsoir,
    Pour un losange, je ne connais pas mais il doit surement y avoir moyen,je te laisse toujours le code pour un cercle au cas ou celà pourrait te servir.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Private Sub Picture1_Click()
       ' Définit l'échelle à 100.
       Picture1.ScaleHeight = 100
       Picture1.ScaleWidth = 100
       ' Active la propriété AutoRedraw.
       Picture1.AutoRedraw = True
       ' Définit la propriété ForeColor.
       Picture1.ForeColor = 0
       ' Définit la propriété FillColor.
       Picture1.FillColor = QBColor(9)
       ' Définit la propriété FillStyle.
       Picture1.FillStyle = 0
       ' Dessine un cercle.
       Picture1.Circle (50, 50), 30
       ' Désactive la propriété AutoRedraw.
       Picture1.AutoRedraw = False
    End Sub
    jpleroisse

  3. #3
    scr
    scr est déconnecté
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 127
    Points : 143
    Points
    143
    Par défaut
    Il semblerait qu'il n'existe pas de fonction vb destinée à ça...
    Le seul moyen que j'ai trouvé c'est de dessiner un losange avec une serie de rectangle d'un pixel de hauteur.

    Un rond, pour dessiner un losange, tu te fouts de ma gueule !
    Quoi que j'aurai pu dessiner une serie de rond d'un pixel de diametre pour alumer chaque pixel de mon losange...

  4. #4
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 097
    Points : 16 606
    Points
    16 606
    Par défaut
    Bonjour
    le code suivant répondrat peut-être à la question (en VB6)

    dans une form mettre 2 label, 2 picturebox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    Option Explicit
    'pour lire la couleur d'un pixel
    Private Declare Function GetPixel Lib "gdi32" ( _
        ByVal hdc As Long, _
        ByVal X As Long, _
        ByVal Y As Long) As Long
    ' pour colorer une surface avec un pinceau image ou une couleur
    Private Declare Function CreatePatternBrush Lib "gdi32" (ByVal hBitmap As Long) As Long
    Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Private Declare Function ExtFloodFill Lib "gdi32" ( _
        ByVal hdc As Long, _
        ByVal X As Long, _
        ByVal Y As Long, _
        ByVal crColor As Long, _
        ByVal wFillType As Long) As Long
    Private Const FLOODFILLBORDER = 0
    Private Const FLOODFILLSURFACE = 1
     
    Private Sub Form_Load()
    Me.ScaleMode = 3
    Me.AutoRedraw = True
    Label1.Top = 6: Label1.Left = 6
    Label1 = "Maj. plus Click peinture de la couleur dans picture1"
    Label2.Top = 26: Label2.Left = 6
    Label2 = "Ctrl. plus Click peinture de l'image dans picture1"
    Picture1.ScaleMode = 3
    Picture1.Top = 44: Picture1.Left = 6
    Picture1.Height = 149: Picture1.Width = 149
    Picture1.AutoRedraw = True
    Picture2.BackColor = &HFFFF&
    Me.Height = 3420: Me.Width = 4110
    Dim A, B As Integer
    A = 27: B = 7
    'dessin d'un pseudo losange dans Picture1
    Picture1.Line (A, A * 2)-(A * 3, B / 4), 255
    Picture1.Line -(A * 5, B * 8), 255
    Picture1.Line -(A * 3, B * 16), 255
    Picture1.Line -(A, A * 2), 255
    End Sub
     
    Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Shift = 1 Or Shift = 2 Then Else Exit Sub
    'pour remplir le losange
    Dim mBrush As Long
    Dim FB As String
    Dim objPic As Picture
    If Shift = 2 Then 'Ctrl
     FB = "C:\PersoFrancis\GrdPersonage2Zoom.bmp" '******* adapter ************
     Set objPic = LoadPicture(FB) 'Chargement du bitmap
     mBrush = CreatePatternBrush(objPic) 'Création de la brosse
     SelectObject Picture1.hdc, mBrush 'Activation de la brosse
     'Peinture dans la zone x,y dans l'image "Picture1", avec le pinceau image "FB"
     ExtFloodFill Picture1.hdc, X, Y, GetPixel(Picture1.hdc, X, Y), FLOODFILLSURFACE
     DeleteObject mBrush 'Nettoyage de la brosse
    End If
    If Shift = 1 Then 'Maj.
     'Peinture dans la zone x,y de la couleur Picture2.BackColor
     Set objPic = Picture2.Image  'Chargement de l'objet model
     mBrush = CreatePatternBrush(objPic)
     SelectObject Picture1.hdc, mBrush
     ExtFloodFill Picture1.hdc, X, Y, GetPixel(Picture1.hdc, X, Y), FLOODFILLSURFACE
     DeleteObject mBrush
    End If
    Picture1.Refresh
    End Sub
    Le code est un peu long pour la demonstration, mais ne prendre que ce qui vous interésse.

    Salut

  5. #5
    scr
    scr est déconnecté
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 127
    Points : 143
    Points
    143
    Par défaut
    Merci, c'est exactement ce que je cherchais

  6. #6
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    361
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 361
    Points : 146
    Points
    146
    Par défaut
    mettre résolu!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] [C#]Charger une image dans une picture box
    Par Pas_d_Idee dans le forum Windows Forms
    Réponses: 6
    Dernier message: 21/09/2012, 01h05
  2. Probleme de dessin dans une Picture Box
    Par titou640 dans le forum C#
    Réponses: 0
    Dernier message: 12/03/2012, 16h14
  3. Oracle et BLOB pour image dans un picture Box
    Par gueulederack dans le forum VB.NET
    Réponses: 4
    Dernier message: 13/09/2011, 15h21
  4. Jouer un AVI dans un Picture Box ou un panel
    Par olibara dans le forum Windows Forms
    Réponses: 16
    Dernier message: 26/04/2009, 09h50
  5. faire défiler image dans picture box
    Par cd090580 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/02/2007, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo