Les couleurs

 

Le type COLORREF permet de définir dans un DWORD les composantes rouge, vert bleu d'une couleur.Il s'agit d'entier long non signé de 32 bits qui sert à contenir les valeurs de 0 à 255 des trois couleurs primaires (rouge, bleu, vert) qui forment chaques couleurs. Un tel nombre n'étant pas facile à lire ou à coder, il est préférable d'utiliser la macro RGB. Cette macro fera alors automatiquement la conversion...

typedef DWORD COLORREF;
typedef DWORD* LPCOLORREF;

 

La macro RGB:

Cette macro va nous permettre de définir une couleur de type COLORREF grâce à ses couleurs primaires: rouge, vert et bleu.

Cette macro est donc très utile pour toutes les fonctions attendant en paramètre un entier long non signé (Type COLORREF) pour définir une couleur.

 

Cette macro attend trois arguments: l'intensité pour le rouge, le vert et le bleu dont les valeurs pour chaque couleur primaire varient entre 0 et 255.

Exemple: SetTextColor(hdc,RGB(255,0,0)) affichera le texte en rouge très saturé.

RGB (0,0,0) pour une couleur noire.

RGB (255,255,255) pour une couleur blanche.

RGB (0,255,0) pour du vert

...

 

A l'inverse, pour récupérer les intensités du rouge, vert ou bleu d'un nombre au format COLORREF, on utilisera les fonctions GetRValue, GetGValue ou GetBValue. Ces intensités variant toujours entre 0 et 255.

L'intensité du rouge :

BYTE GetRValue(
DWORD rgb // RGB value
);

L'intensité du vert:

BYTE GetGValue(
DWORD rgb // RGB value
);

et enfin, l'intensité du bleu:

BYTE GetBValue(
DWORD rgb // RGB value
);