Прямо сейчас у меня есть окно, которое полностью пустое желтое. По какой-то причине, когда я вызываю GetPixel(), я получаю только 0xFFFFFFFF (CLR_INVALID). Вот мой minimalized код:GetPixel() возвращает только FFFFFF
HWND _hwndPP = FindWindow(NULL, "Test Window");
COLORREF hdcScreen = GetDC(_hwndPP);
printf("%X", GetPixel(hdcScreen, 10, 10));
ReleaseDC(_hwndPP, hdcScreen);
EDIT: Измененное COLORREF к HDC, и это ничего не изменило. Да, я запускаю 64-битную систему. Означает ли это, что я не могу использовать эту функцию? Если да, то как я могу проверить цвет определенного пикселя?
'hdcScreen' должен быть типа' HDC'. Кроме того, вы проверили возвращаемые значения (FindWindow и GetDC)? –
Действительно ли он возвращает 0x00FFFFFF (чистый белый) или 0xFFFFFFFF ('CLR_INVALID') – 3Doubloons
' GetDC' возвращает 'HDC', а не' COLORREF'. Вместо этого объявите переменную как «HDC» и передайте правильную переменную типа «HDC» в «GetPixel». В случае сомнений проверьте документацию в MSDN. –