[C++] Farbwert umwandeln

F

Fabian H

Wie kann ich einen Farbwert der über so ein windows-standart-farbwählfenster zurückgegeben wird in einen html tauglichen hex-farbencode umwandeln

]Ton[
 
Also das kommt darauf an, was du verwendest, ich geh mal davon aus, daß du mit dem Common-Dialog von MFC arbeitest.
Dann gibt dir der Dialog eine COLORREF struct zurück, in der die RGB Werte gespeichert sind.
Da gibt es dann 3 gute Macros aus der WinGDI:
Code:
BYTE GetRValue(
  DWORD rgb  // 32-bit RGB value
);
BYTE GetGValue(
  DWORD rgb  // 32-bit RGB value
);
BYTE GetBValue(
  DWORD rgb  // 32-bit RGB value
);
Diese geben dir dann jeweils den R,G bzw. B Wert aus der COLORREF struct zurück.
Diese brauchst du dann nur noch in HEX umwandeln.
Z.B. so:

Code:
 COLORREF col;
 col = RGB(255, 255, 255); //nur Testwerte, kommt sonst aus dem dialog
 byte red, green, blue;
 red = GetRValue(col);
 green = GetGValue(col);
 blue = GetBValue(col);

 char html[8];   // da steht dann der HTML-Farbcode drin
 sprintf(html, "#%.2X%.2X%.2X\0", red, green, blue);

Gruss Homer
 

Neue Beiträge

Zurück