2009-08-20 6 views
0

J'ai trouvé des fonctions API pour dessiner une étoile en utilisant VB6: ce dont j'ai besoin est de colorier des sections de chaque point de l'étoile selon des paramètres pilotés par les données: donc si le paramètre passé est 1, je veux colorier la partie du point étoile rouge sélectionnée jusqu'au 1/10 de sa longueur mesurée à partir de la circonférence du cercle autour duquel l'étoile est construite; si 2, 2/10ème de l'étoile point vert, etc.VB6: Parties colorées des points d'une étoile

J'ai trouvé la fonction API CreatePolygonRgn donc je peux changer la couleur de l'ensemble d'un point d'étoile particulier, mais déconcerté quant à la façon dont un polygone peut être défini en utilisant un seul paramètre X et Y: si je change le X et Y pour un point étoile donnée, j'obtiens des résultats qui ne semblent pas donner un sens TKIF Charles Geach
se

Répondre

1

l'excellente vbAccelerator donne some VB6 code. Je n'ai pas testé cela moi-même. Sachez que points() est un tableau, et même si semble comme si vous ne faites que passer le premier élément, vous donnez en fait l'accès d'appel API au tableau entier. Le premier argument à CreatePolygonRgn n'est pas un seul point, mais un tableau de points.

J'espère que cela vous aidera à comprendre ce qui se passe et que vous pourrez écrire votre code étoile.

Type POINTAPI 
    X As Long 
    Y As Long 
End Type 
Declare Function CreatePolygonRgn Lib "gdi32" _ 
    (lpPoint As POINTAPI, ByVal nCount As Long, _ 
    ByVal nPolyFillMode As Long) As Long 

Sub Test() 
    Const ALTERNATE = 1 ' ALTERNATE and WINDING are ' 
    Const WINDING = 2 ' constants for FillMode. ' 

    Dim points(1 To 5) as POINTAPI 
    ' fill in points .. ' 
    CreatePolygonRgn(points(1), 5, WINDING) 
End Sub 
0

Au lieu de jouer avec les appels API, je voudrais suggérer une alternative. Il me semble que vous aurez (au plus) 11 étoiles différentes (0 à 10). Si c'était mon projet, je créerais 11 images en utilisant une application graphique de votre choix. Ensuite, en fonction de la valeur de la variable, affichez sélectivement l'image que vous voulez.

Questions connexes