+#if 0
+ {
+ {BGR_BUTTONTEXT, COLOR_BTNTEXT}, // black
+ {BGR_BUTTONSHADOW, COLOR_BTNSHADOW}, // dark grey
+ {BGR_BUTTONFACE, COLOR_BTNFACE}, // bright grey
+ {BGR_BUTTONHILIGHT, COLOR_BTNHIGHLIGHT},// white
+ /* {BGR_BACKGROUNDSEL, COLOR_HIGHLIGHT}, // blue */
+ {BGR_BACKGROUND, COLOR_WINDOW} // magenta
+ };
+#endif
+
+ int NUM_MAPS = (sizeof(ColorMap)/sizeof(COLORMAP));
+ int n;
+ for ( n = 0; n < NUM_MAPS; n++)
+ {
+ ColorMap[n].to = ::GetSysColor(ColorMap[n].to);
+ }
+
+ HBITMAP hbmOld;
+ HDC hdcMem = CreateCompatibleDC(NULL);
+
+ if (hdcMem)
+ {
+ hbmOld = (HBITMAP) SelectObject(hdcMem, hBitmap);
+
+ int i, j, k;
+ for ( i = 0; i < width; i++)
+ {
+ for ( j = 0; j < height; j++)
+ {
+ COLORREF pixel = ::GetPixel(hdcMem, i, j);
+ /*
+ BYTE red = GetRValue(pixel);
+ BYTE green = GetGValue(pixel);
+ BYTE blue = GetBValue(pixel);
+ */
+
+ for ( k = 0; k < NUM_MAPS; k ++)
+ {
+ if ( ColorMap[k].from == pixel )
+ {
+ /* COLORREF actualPixel = */ ::SetPixel(hdcMem, i, j, ColorMap[k].to);
+ break;
+ }
+ }
+ }
+ }
+
+
+ SelectObject(hdcMem, hbmOld);
+ DeleteObject(hdcMem);
+ }