Bizarerie: Problème de passage paramètre à une api

Bizarerie: Problème de passage paramètre à une api - VB/VBA/VBS - Programmation

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!

Reply

Marsh Posté le 28-10-2004 à 14:16:47   

Reply

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

Reply

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...

Reply

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 !

Reply

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 :D
 
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" )


Message édité par ixemul le 29-10-2004 à 22:56:59
Reply

Marsh Posté le 03-11-2004 à 10:29:59    

Merci beaucoup ixemul. Ca m'explique tout. J'étais resté en rgb moi.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed