#include <windows.h>
int main () {
/* Скрываем консоль */
ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);
}
В этом материале описывается как рисовать по экрану в ОС Windows. Программа использует консольное приложение, поэтому, чтобы его скрыть можно использовать конструкцию описанную выше.Итак, для того чтобы начертить линию поверх интерфейса Windows можно использовать следующий код:
#include <iostream>
#include <windows.h>
int main () {
/* Скрываем консоль */
ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);
POINT ptPrevious;
POINT pos;
HDC hDC_Desktop;
while (true) {
/* Если нажата средняя кнопка мыши (колесо), то рисуем */
if (GetAsyncKeyState(VK_MBUTTON)) {
hDC_Desktop = GetDC(0);
ptPrevious.x = pos.x;
ptPrevious.y = pos.y;
GetCursorPos(&pos);
HPEN hPen = CreatePen(PS_SOLID, 2, RGB(255, 57, 7));
SelectObject(hDC_Desktop, hPen);
/* Устанавливаем позицию начальной точки */
MoveToEx(hDC_Desktop, ptPrevious.x, ptPrevious.y,NULL);
LineTo(hDC_Desktop, pos.x, pos.y);
ReleaseDC(0, hDC_Desktop);
}
/* Если нажата кнопка ESC, то выходим из программы */
if (GetAsyncKeyState(VK_ESCAPE)) { break; }
}
return 0;
}
Хочется, однако, отметить, что это больше учебный пример, потому что, если рисовать по объектам, взаимодействующим с пользователем (кнопки, ссылки и т. д.), то линия будет пропадать из-за перерисовки этих объектов при наведении мыши и нажатии на них.
Оставьте свой комментарий
Комментариев нет