У меня есть элемент управления ActiveX, который содержит одно окно, в котором отображается потоковое видео. У меня есть отдельный диалог, который я создаю в другом окне, которое я сделал прозрачным или полупрозрачным различными способами (например, используя SetLayeredWindowAttributes (...) вместе со свойством Layered [для альфа-смешения] диалога или установив прозрачный свойство).
Кроме того, я пытался использовать различные методы, чтобы попытаться заставить окно для диалога всегда рисовать поверх окна потокового видео, но ни один из них не помог мне. Если у меня есть кнопка в диалоговом окне или я рисую на прозрачной поверхности с помощью вызовов LineTo (...), они не остаются в верхней части видео. Я попытался использовать SetWindowPos, чтобы повлиять на z-порядок двух окон, а также попытался изменить свойства диалогового окна, такие как «TopMost», но безрезультатно.
Кто-нибудь пытался сделать что-то подобное для наложенного окна поверх потокового видео и получил z-порядок для работы с окраской переднего окна всегда после потокового видео?
ОБНОВЛЕНИЕ: 02/10/10 - попытался использовать свойство WS_EX_LAYERED с SetLayeredWindowAttributes (...) с использованием LWA_COLORKEY и добился того, что искал. Поскольку многоуровневое свойство не может быть использовано со стилем WS_CHILD, это решение обеспечивает необходимое управление положением оверлейного окна относительно окна с видео. Кроме того, есть некоторые другие странности, которые я пытаюсь устранить. Например, когда окно управления ActiveX с видео встроено во вкладку IE, и я переключаюсь на другую вкладку, элементы управления в окне наложения остаются поверх новой вкладки (когда используется стиль WS_POPUP). Все еще исследуем, будут ли альтернативные средства решения этой проблемы, кроме определения переключателя и скрытия видимости окна.