Создание программы, которая создает полноэкранное наложение - PullRequest
1 голос
/ 03 января 2012

Я хочу написать программу, которая создала бы прозрачное наложение, заполняющее весь экран в Windows 7, предпочтительно с C ++ и OpenGL.Хотя, если есть API, написанный на другом языке, который делает это очень простым, я был бы более чем готов использовать это тоже.В общем, я предполагаю, что мне нужно было бы каким-то образом считывать пиксели, которые уже находятся на экране.

Использование того же метода, который используется программой для захвата экрана, чтобы получить пиксели с экрана, а затем перерисовать их, будет работатьизначально, но проблема будет тогда, если экран обновится.Тогда моя программа должна была бы свернуть / закрыть и снова появиться, чтобы я мог читать нижележащие пиксели.

1 Ответ

2 голосов
/ 03 января 2012

Windows Vista представила новый флаг в PIXELFORMATDESCRIPTOR: PFD_SUPPORT_COMPOSITION. Если контекст OpenGL создается с альфа-каналом, т. Е. AlphaBits PFD отличен от нуля, альфа-канал кадрового буфера OpenGL учитывается композитором Windows.

Затем, создавая полноэкранное, без рамки, неокрашенное окно, вы получаете этот эффектный вид наложения, который вы желаете. Однако это окно будет по-прежнему получать все входные события, поэтому вам придется выполнить некоторую грубую работу и вручную передать все входные события нижележащим окнам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...