Realmente no entiendo cómo se expresa su valor de color, es RGB (X, Y, Z). ¿Alguien puede contarme sobre esto?
RGB(X, Y, Z) es solo una definición macro por conveniencia.
La macro RGB(r, g, b) obtiene un valor de tipo COLORREF, que en realidad es un DWORD. Existe tal definición en WINDEF. h:
typedef DWORD COLORREF
Esta es la definición de macro RGB (r, g, b) en WINGDI. h:
#Definir RGB(r,g,b)((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8) )| (((DWORD)(BYTE)(b))<<16)))
Esta macro en realidad combina tres valores de RGB en un solo valor, como RGB(64, 32, 128), es en realidad un DWORD tipo 0x402080 (representación hexadecimal). Porque 64 convertido a hexadecimal es 0x40, 32 convertido a hexadecimal es 0x20 y 128 convertido a hexadecimal es 0x80. Entonces, el valor RGB (64, 32, 128) es en realidad 0x402080 de tipo de doble byte, que es 4202624 en decimal.