在大多数 GDI 函数调用中,使用 COLORREF 值(只是一个32位的无符号长整数)来表示一种色彩。COLORREF 值按照红、绿和蓝色的亮度指定了一种颜色,通常叫做“RGB色彩”。
windows 头文件 WINGDI.H 提供了几种使用 RGB 色彩值的宏。RGB 宏要求三个参数分别代表红、绿和蓝值,然后将它们组合为一个无符号长整数:
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r) | \
((WORD)((BYTE)(g)) << 8)) | \
(((DWORD)(BYTE)(b)) << 16 )))
注意三个参数的顺序是红、绿和蓝值。因此,值 RGB(255,255,0) 是0x0000FFFF 或黄色(红色和绿色的合成)。
可以调用 GetNearestColor 来决定与某一色彩最接近的纯色:
crPureColor = GetNearestColor(hdc,crColor);