AckiB
Mitglied
Hi,
ich versuche die Farbe eines pixels auf dem Desktop zu ermitteln...
Das funktioniert auch mit der untenstehenden Funktion, aber nur 165 mal !!
Danach bekomme ich nur noch Weiß als Farbe (r=FF g=FF b=FF)...
Kann mir bitte jemand erklären was da falsch ist ?
danke, Acki
ich versuche die Farbe eines pixels auf dem Desktop zu ermitteln...
Das funktioniert auch mit der untenstehenden Funktion, aber nur 165 mal !!
Danach bekomme ich nur noch Weiß als Farbe (r=FF g=FF b=FF)...
Kann mir bitte jemand erklären was da falsch ist ?
danke, Acki
Code:
void getPixel() {
static HWND hwnd = GetDesktopWindow();
HDC ddc = GetDC(hwnd);
HDC mdc = CreateCompatibleDC(ddc);
RECT sz;
GetWindowRect(hwnd, &sz);
HBITMAP hbmp = CreateCompatibleBitmap(ddc, sz.right, sz.bottom);
SelectObject(mdc, hbmp);
BitBlt(mdc, 0, 0, sz.right, sz.bottom, ddc, 0, 0, SRCCOPY);
COLORREF cref;
cref = GetPixel(mdc, 512, 384);
// funktioniert nur 165 mal, dann kommt nur noch "FF FF FF"
static int x = 0;
printf("%d %02X %02X %02X\n", ++x, GetRValue(cref), GetGValue(cref), GetBValue(cref));
ReleaseDC(hwnd, ddc);
ReleaseDC(hwnd, mdc);
DeleteObject(hbmp);
}