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 :

[VB6] Aide sur un code


Sujet :

VB 6 et antérieur

  1. #1
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut [VB6] Aide sur un code
    Bonjour , j'ai trouvé sur le net un code permettant de dessiner un triangle , mais le soucis c'est qu'il y a aucun commentaire , et j'aimerai transformer ce triangle en un sablier , 2 triangles symétrique ayant un sommet en commun ...
    merci d'avance
    amicalement lucas
    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
    Private Type COORD
        x As Long
        y As Long
    End Type
    Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
    Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As Any, ByVal nCount As Long) As Long
    Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
    Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Const ALTERNATE = 1
    Const WINDING = 2
    Const BLACKBRUSH = 4
    Private Sub Form_Paint()
        Dim poly(1 To 4) As COORD, NumCoords As Long, hBrush As Long, hRgn As Long
        Me.Cls
        NumCoords = 2
        Me.ScaleMode = vbPixels
        poly(1).x = Form1.ScaleWidth / 2
        poly(1).y = Form1.ScaleHeight / 2
        poly(2).x = Form1.ScaleWidth / 4
        poly(2).y = 3 * Form1.ScaleHeight / 4
        poly(3).x = 3 * Form1.ScaleWidth / 4
        poly(3).y = 3 * Form1.ScaleHeight / 4
        Polygon Me.hdc, poly(1), NumCoords
        hBrush = GetStockObject(BLACKBRUSH)
        hRgn = CreatePolygonRgn(poly(1), NumCoords, ALTERNATE)
        If hRgn Then FillRgn Me.hdc, hRgn, hBrush
        DeleteObject hRgn
    End Sub
    Private Sub Form_Resize()
        Form_Paint
    End Sub

  2. #2
    Membre actif Avatar de malhivertman1
    Inscrit en
    Avril 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 337
    Points : 221
    Points
    221
    Par défaut
    Moi ton code ne me dessine pas un triangle..

  3. #3
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    si si , je me suis penché dessu , et maintenant ca dessine un sablier
    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
     
    Private Type COORD
        x As Long
        y As Long
    End Type
    Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
    Private Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, lpPoint As Any, ByVal nCount As Long) As Long
    Private Declare Function FillRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long
    Private Declare Function GetStockObject Lib "gdi32" (ByVal nIndex As Long) As Long
    Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
    Const ALTERNATE = 2
    Const WINDING = 2
    Const BLACKBRUSH = 4
    Private Sub Form_Paint()
        Dim poly(1 To 5) As COORD, NumCoords As Long, hBrush As Long, hRgn As Long
        Me.Cls
        NumCoords = 5
        Me.ScaleMode = vbPixels
        poly(1).x = Form1.ScaleWidth / 2
        poly(1).y = Form1.ScaleHeight / 2
        poly(2).x = 2 * Form1.ScaleWidth / 3
        poly(2).y = 3 * Form1.ScaleHeight / 4
        poly(3).x = 1 * Form1.ScaleWidth / 3
        poly(3).y = 3 * Form1.ScaleHeight / 4
        poly(4).x = 2 * Form1.ScaleWidth / 3
        poly(4).y = 1 * Form1.ScaleHeight / 4
        poly(5).x = 1 * Form1.ScaleWidth / 3
        poly(5).y = 1 * Form1.ScaleHeight / 4
        Polygon Me.hdc, poly(1), NumCoords
        hBrush = GetStockObject(BLACKBRUSH)
        hRgn = CreatePolygonRgn(poly(1), NumCoords, ALTERNATE)
        If hRgn Then FillRgn Me.hdc, hRgn, hBrush
        DeleteObject hRgn
    End Sub
    Private Sub Form_Resize()
        Form_Paint
    End Sub
    Maintenant j'aimerai faire clignoter mon dessin , comment faire ??

  4. #4
    Membre actif Avatar de malhivertman1
    Inscrit en
    Avril 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 337
    Points : 221
    Points
    221
    Par défaut
    Oui maintenant, ca dessine bien un sablier mais tout a l'heure, je n'avais qu'une barre diagonale. Pour le faire clignoter, pourquoi ne pas jouer sur le visible = true et visible = false, c'est le plus facile a faire

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    pour faire clignoter tu peux utiliser un timer et changer la couleur des traits

  6. #6
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    euh .... et bien j'ai regarder la source mais je ne trouve pas de moyen "simple" me permettant de faire clignoter , la propriété
    .visible = true
    .visible = false
    est exclu car je ne fait appel à aucun objet

    autre petit soucis , celui qui à codé à utilisé je ne sais quel fonction pour permettre de modifier la couleur , j'ai trouvé en essayant que je pouvait obtenit
    blanc en mettant 0
    gris en mettant 1
    noir en mettant 4
    transparent en mettant 5
    dans cette ligne de code
    mais impossible d'obtenir du rouge et du vert

    votre aide est la bien venu
    amicalement lucas

  7. #7
    Membre régulier Avatar de Lucas42
    Inscrit en
    Janvier 2006
    Messages
    301
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 301
    Points : 97
    Points
    97
    Par défaut
    C'est cool , j'ai fait completement autre chose
    Ceci dans un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Declare Sub FloodFill Lib "gdi32" (ByVal hDC As Long, _
                                       ByVal X As Long, _
                                       ByVal Y As Long, _
                                       ByVal crColor As Long)
    Ceci dans une feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Form_Paint()
       ScaleMode = vbPixels
       ForeColor = vbBlack
       Line (100, 50)-(300, 50)
       Line (100, 50)-(300, 350)
       Line (300, 50)-(100, 350)
       Line (100, 350)-(300, 350)
       FillStyle = vbFSSolid
       FillColor = RGB(255, 0, 0)
       FloodFill hDC, 200, 100, ForeColor
    End Sub
    Donc je peut avoir toutes les couleurs que je veux grace au FillColor , il faut tout de même connaitre les taux de Rouge , ......

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

Discussions similaires

  1. Demande d'aide sur mon code
    Par b.soufiane dans le forum C++
    Réponses: 6
    Dernier message: 07/12/2007, 16h36
  2. Demande d'aide sur un code source
    Par Soward dans le forum SDL
    Réponses: 3
    Dernier message: 13/06/2007, 20h22
  3. Aide sur un code
    Par azerty974 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 11/06/2007, 13h54
  4. aide sur un code Mysql+
    Par flo1084 dans le forum Bibliothèques
    Réponses: 1
    Dernier message: 24/10/2006, 09h54
  5. [C# 1.1] Aide sur un code C# 2005
    Par Filipegomes dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/10/2006, 14h33

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