COLORREF型について


色情報を利用するときにはCOLORREF型があります。 しかし、これはRGB値を一括して、一つの値としているために、 RGBの各要素値を手に入れるには次のようにする必要があります。

COLORREF型→RGB各要素(int型)

#define GetRValue(rgb) ((BYTE)(rgb))
#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
#define GetBValue(rgb) ((BYTE)((rgb)>>16))


RGB各要素(int型)→COLORREF型

#define RGB(r, g ,b) ((DWORD)(((BYTE)(r) | \ ((WORD)(g) << 8)) | \ (((DWORD)(BYTE)(b)) << 16)))



COLORREF型:
RGB色を明示的に指定するときは、 COLORREF値に、 次の形式の16進値を指定します。
0x00bbggrr
下位バイトには、 赤の相対輝度に対する値が設定されます。第2バイトには、 緑の相対輝度値が設定されます。第3バイトには、 青の相対輝度値が設定されます。上位バイトは0に設定しなければなりません。各バイトの最大値は、 0xFFです。

http://ha1.seikyou.ne.jp/home/ikkyu/  
by Kazuhisa.Minami