2015-10-21 3 views
0

Я хочу визуализировать графику, похоже, поверх рабочего стола Windows. Существует множество решений для визуализации окон transparent и click-through. Тем не менее, я хочу, чтобы некоторые из обработанных спрайтов были интерактивными. Как мне это сделать?Частичное сквозное прозрачное окно на рабочем столе с использованием OpenGL

Я использую C# в Windows и планирую использовать OpenTK. Если это неосуществимо, объясните.

+1

Этот вопрос слишком широк. Несколько ключевых слов, которые помогут: WS_EX_LAYERED (для альфа-прозрачности/компоновки), SetLayeredWindowAttributes и/или UpdateLayeredWindow. Однако я бы предпочел, чтобы Direct2D или Direct3D для Windows работали вот так. Я не пробовал его с помощью фреймбуфера OpenGL. – Robinson

+0

В соответствии с предыдущим комментарием Windows DWM технически может это сделать и с тех пор, как Windows NT 4. была доступна. Доступна ли эта функция в удобном для доступа к вашим данным инфраструктурам. –

ответ

0

Нет «чистого» решения для этого, если вы хотите, чтобы он работал в полупрозрачных областях. Обычным решением было бы определить, какое окно находится непосредственно под нажатой позицией, и отправить ему сообщение о событии с синтетическим кликом.

Если все, что вас интересует, придаст вашему окну прочную форму, вы можете использовать расширение XShape (на X11) или использовать SetWindowRgn, чтобы вырезать из «чувствительной» области вашего окна, проваливаются "до того, что ниже.

Смежные вопросы