GetPixel и CLR_INVALID..
У меня вот какой вопрос..
Я написал программу для одной игрушки, которая считывает в некоторой области экрана значение цвета пикселя. Делаю это легко:
Код:
::GetClientRect(g_hWnd, rect);
COLORREF clr = GetPixel(hdc, rect.Width() / 2, rect.Height() / 2);
COLORREF clr = GetPixel(hdc, rect.Width() / 2, rect.Height() / 2);
У меня всё отлично работает, функция возвращает текущее значение цвета точки. Но почему-то у многих пользователей программы эта же конструкция всегда возвращает либо 0 (то есть белый цвет, чего не должно быть), либо чёрный (что означает CLR_INVALID). Так вот вопрос в том, что могут означать эти ошибки? И что может быть их причиной? Почему у многих эта конструкция не работает корректно?
GetClientRect работает исправно, проверял... в коде стоит обработчик, просто не стал захламлять.
Цитата:
If the pixel is outside of the current clipping region, the return value is CLR_INVALID.
Цитата: bagie2
Может быть это?
ну так смотри по коду.. такого быть не может, т.к. я беру центр окна. Функция GetClientRect отрабатывает без проблем..
Цитата: nof
ну так смотри по коду.. такого быть не может, т.к. я беру центр окна. Функция GetClientRect отрабатывает без проблем..
Чудес не бывает. Задайте явно область клиппинга перед обращением к GetPixel.