Определение цвета пикселя в координатах (получение хэндала)

Задача - открываем вкладку браузера, и получаем цвет по координатам мыши (формат RGB, но получаем только R, ибо остальное нам не нужно). Цвета я получаю, координаты тоже, но программа получает цвет из какой-то другой вкладки. Тогда как узнать какой хендл окна мне нужен, чтобы программа работала корректно? Работаю через Yandex браузер. (Не понимаю, как получать цвет координат с окна) Код:

BYTE R, G;
HWND Handle;
Handle = FindWindow(L"Yandex", NULL);
HDC hdc = GetDC(Handle);
int x, y;
POINT cursor;
while (1)
{
    if (GetCursorPos(&cursor)) //получаем координаты курсора
    {
        x = cursor.x; // инициализируем x, y координатам курсора
        y = cursor.y;
        COLORREF color = GetPixel(hdc, x, y); // получаем цвет по координатам
        R = GetRValue(color); // инициализируем цвет
        std::cout << cursor.x << " " << cursor.y << " " << (unsigned int)R << std::endl; // выводим
    }
}

Ответы (1 шт):

Автор решения: AndryS1

Нужно всего-лишь ScreenToClient, чтобы перевести координаты экрана, в координаты окна (GetPixel работает относительно окна)

    BYTE R, G;
    HWND Handle;
    Handle = FindWindow(L"Yandex", NULL);
    HDC hdc = GetDC(Handle);
    int x, y;
    POINT cursor;
    while (1)
    {
        if (GetCursorPos(&cursor)) //получаем координаты курсора
        {
            ScreenToClient(Handle, &cursor);
            x = cursor.x; // инициализируем x, y координатам курсора
            y = cursor.y;
            COLORREF color = GetPixel(hdc, x, y); // получаем цвет по координатам
            R = GetRValue(color); // инициализируем цвет
            std::cout << cursor.x << " " << cursor.y << " " << (unsigned int)R << std::endl; // выводим
        }
    }

попробуйте это

→ Ссылка