Как нарисовать что-то на экране и сделать основной интерфейс интерактивным - PullRequest
1 голос
/ 05 января 2010

Сначала я ищу решение для Windows. Мне нужно добавить визуальные эффекты к изображению на экране, не нарушая интерактивность всех элементов управления, находящихся на этом экране. Решение может быть простым: 1. сделать скриншот 2. показать этот скриншот в отдельном окне над другими окнами 3. применить эффект к изображению, отображаемому в этом окне Но это окно (содержащее скриншот) делает любые кнопки и другие элементы управления ниже недоступными для взаимодействия с мышью (щелчок, зависание)

Есть ли способ сделать это?

1 Ответ

1 голос
/ 05 января 2010

Из документации MSDN по многослойным окнам ...

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

Вот статья об этом .Обратите внимание на это дополнительное предупреждение:

"установка атрибута WS_EX_TRANSPARENT влияет на все окно: пользователь не может закрыть окно с помощью кнопки 'x', выбрать его с помощью мыши или выбрать любые элементы управления наокно. Приложение все еще может закрывать окно программным способом. "

В зависимости от того, что вы на самом деле рисуете и где, может быть более целесообразно использовать Элементы управления, нарисованные владельцем вместо того, чтобы навести "луковую кожуру" на все окно.

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