«Прозрачная» форма Windows мерцает, когда перед DirectDraw Video Surface - PullRequest
2 голосов
/ 24 мая 2011

У меня есть приложение, в котором, вне моего контроля, в нескольких Windows Forms установлено свойство TransparencyKey.Когда эти окна закрывают (находятся перед) другую форму с видеоповерхностью DirectDraw, форма переднего плана мигает (частично показывая форму и частично показывая видео под ней).Дело в том, что цвет TransparencyKey не появляется нигде в приложении, поэтому НИЧЕГО не должно быть прозрачным ... другими словами, результатом должно быть то, что форма переднего плана полностью непрозрачна.*

Кто-нибудь испытывает мерцание поверхностей DirectDraw в сочетании с Windows Forms, которые в той или иной форме настроены на прозрачность?Я работал над этим неделями, но безуспешно.Спасибо!

1 Ответ

1 голос
/ 24 мая 2011

Извините, но я бы посоветовал вам полностью отказаться от этой цели и попытаться сделать это другим способом.

DirectDraw - это один из способов отображения материала на экране и форм с областямисоздаются на лету, так как маски из так называемого «прозрачного ключевого цвета») создаются с помощью GDI.Как я понимаю (и хотел бы доказать обратное) - вы все равно не сможете объединить эти два окна.

И вы, вероятно, получите разные результаты в разных Windows, в зависимости от версии, графикииспользуемая карта и т. д.

С другой стороны, можете ли вы взломать те формы, над которыми у вас нет контроля, и удалить из них свойство TransparencyKey?Даже с Win32 API?

...