Почему не рисуется линия?

Sleep(1000);
HWND window = FindWindow(NULL, L"Калькулятор");
if (window == NULL)return 0;

HDC dc = GetWindowDC(window);
if(dc==NULL)return 0;

    for (int i = 0; i < 30; i++)
    {
        SetPixel(dc, 5 + i, 5, RGB(255, 9, 9));
    }

В итоге ничего не происходит,хотя вроде хендл находится и GetWindowDC не возвращает 0.


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

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

Почему же не рисуется? Отлично рисуется. Проверил.

Вот только увидеть это можно, если окно калькулятора ничем не перекрыто в момент запуска данной программы, и не сдвигается, иначе происходит перерисовка этого окна, и художества пропадают.

Для того, чтобы постоянно рисовать в чужом окне, нужно перехватить его оконную процедуру и подменить обработку сообщения WM_PAINT

→ Ссылка