Bizarerie: Problème de passage paramètre à une api - VB/VBA/VBS - Programmation
Marsh Posté le 29-10-2004 à 09:03:04
comme tu ne donne pas le nom de l'API que tu utilise, difficle ! va sur www.allapi.net
Marsh Posté le 29-10-2004 à 09:27:29
c'est une api de gdi+
Public Declare Function GdipCreatePen1 Lib "gdiplus" (ByVal color As long, ByVal Width As Single, ByVal unit As GpUnit, pen As Long) As GpStatus
ca merde avec le paramètre color...
Marsh Posté le 29-10-2004 à 19:31:37
le paramètre color, c'est le code RGB, essaye rgb(x.x.x) ! je crois que rgb renvoie un long !
Marsh Posté le 29-10-2004 à 22:55:08
cette API attend un parametre sur 32 bits, a savoir dans le cas de GDI+ une valeur comprennant :
La transparence : les premiers 8 bits
La Q de rouge : sur 8 bits
La Q de vert : sur 8 bits
La Q de Bleu : sur 8 bits
Total : 32 bits
GDI+ fonctionne avec un format ARGB (A comme Alpha -> transparence)
si tu envoie 0, la valeur exprimée est &H00000000 soit une couleur noir de transparence 0 soit invisible (la valeur de A determine la valeur de "transparence", plus elle est elevé, plus la couleur est "opaque" )
Marsh Posté le 03-11-2004 à 10:29:59
Merci beaucoup ixemul. Ca m'explique tout. J'étais resté en rgb moi.
Marsh Posté le 28-10-2004 à 14:16:47
salut à tous,
j'attaque une fonction api qui a la structure suivante (je simplifie)
declare function api lib "lib"(valeur as long) as long
j'ai un petit problème avec le paramètre long. Je m'explique:
si j'attaque la fonction de cette façon:
result = api(0)
ca ne marche pas.
si au lieu de 0 j'utilise la valeur &HFF000000 (voir ci dessous ) ça marche...
result = api(&HFF000000)
Je cherche donc une explication à ce fonctionnement ou une fonction que me converti une valeur 0 en valeur &HFF000000 ou une valeur 1 en &HFF000001
Merci!