Come usare Int per ottenere il codice colore RGB

June 8

API di Windows utilizzare un COLORREF per rappresentare un colore. L'intestazione windows.h definisce un COLORREF come DWORD, che è un tipo int a 32 bit. Ci sono diverse macro progettati per l'inizializzazione e la lettura da un COLORREF, ma possono anche essere trattati come un int. La codifica è semplice, ed esaminando le definizioni di macro in grado di dare ulteriori indizi in modi di lavorare con i valori.

istruzione

1 Costruire un COLORREF utilizzando interi valori di rosso, verde e blu utilizzando il RGB macro:
COLORREF myColor = RGB (255, 255, 0); //Giallo

2 Creare un COLORREF esplicitamente utilizzando una costante intera. In esadecimale, il contenuto di un intero COLORREF assomigliano 0x00rrggbb, in cui RR, GG e BB sono i valori di rosso, verde e blu:
COLORREF myColor = 0x0088FF88; //Verde chiaro

3 Estrarre i componenti rosso, verde e blu utilizzando le macro appropriate:
BYTE myRedValue = GetRValue (myColor);
BYTE myGreenValue = GetGValue (myColor);
BYTE myBlueValue = GetBValue (myColor);

Consigli e avvertenze

  • Anche se COLORREFs sono interi, che effettuano operazioni aritmetiche su di essi non fornisce alcun risultato utile a causa del modo in cui vengono codificati. Questo significa che è necessario scrivere codice speciale per calcolare differenze o le medie di colori.