GdipGetPathGradientSurroundColorsWithCount()
Syntaxe
|
Resultat.i = GdipGetPathGradientSurroundColorsWithCount(*brush, *color.integer, @count.l)
Paramètres
|
*brush[in] Pointeur sur un objet PathGradientBrush.
*color[in, out] Pointeur sur une zone mémoire représentant un tableau qui recevra les couleurs de chaque point du contour, au format ARGB.
count.l[out] count recevra le nombre de couleurs du contour de la brush.
Description
|
Cette fonction permet de retrouver le nombre de couleurs ainsi que les couleurs pour chaque point du contour. Ces couleurs doivent avoir été appliquées préalablement par la fonction GdipSetPathGradientSurroundColorsWithCount().Reportez-vous à cette fonction pour plus d'informations.
Si aucune couleur n'a été appliquée avec GdipSetPathGradientSurroundColorsWithCount(), la fonction retourne la valeur 1 dans count car il y a par défaut une couleur unique de contour qui est le blanc et color n'a qu'un seul élément qui contient la couleur blanche au format ARGB.
Lorsque l'on retrouve une couleur avec cette commande, il faut la modifier à l'aide de la fonction ARGBEX() qui se trouve dans le fichier gdiplus.pbi pour obtenir la valeur correcte.
Voici un code type d'utilisation de la fonction (code Microsoft en C adapté en PureBasic v4.30 bêta 4 (Windows - x86))
Procedure.l GetSurroundColors(nativeBrush.i, *colors.integer, *count.long) Protected count1.l, status.i, argbs.i, i.i If *colors = #Null Or *count = #Null ProcedureReturn #InvalidParameter EndIf status = GdipGetPathGradientSurroundColorCount(nativeBrush, @count1) If status <> #Ok ProcedureReturn status EndIf If((*count < count1) Or (count1 <= 0)) ProcedureReturn #InsufficientBuffer EndIf argbs = AllocateMemory(4 *count1) ; tableau ARGB qui recevra les couleurs If argbs = #Null ProcedureReturn #OutOfMemory EndIf status = GdipGetPathGradientSurroundColorsWithCount(nativeBrush, argbs, @count1) If status = #Ok For i = 0 To count1-1 PokeL(*colors + (i*4), PeekL(argbs + (i*4))) Next i PokeL(*count, count1) EndIf FreeMemory(argbs) ProcedureReturn status EndProcedure
Résultat
de la fonction
|
Si la fonction réussit, elle retourne #Ok qui est une constante de l'énumération status.
Si la fonction échoue, elle retourne une des autres valeurs de l'énumération status.
PB
- OS
|
PureBasic v4.30 bêta 4 (Windows - x86)
Testé avec Windows Vista édition familiale Premium