Нужно прозрачное наложение окна для рисования линий поверх окна рисования видео? :: MFC, C ++, окна :: - PullRequest
1 голос
/ 10 февраля 2010

Как создать прозрачное окно, которое может быть помещено поверх другого окна, в котором активно отображается потоковое видео. Я хочу создать окно поверх видеоокна, которое я могу рисовать без видео, постоянно возвращающегося поверх него.

Я могу создать окно из прозрачного диалогового ресурса и установить его z-порядок, используя SetWindowPos (...), но, похоже, это не имеет никакого эффекта. Диалоговое окно, настроенное как стиль WS_CHILD или WS_POPUP, также, похоже, не имеет никакого эффекта.

Я использую медиа (видео) фреймворк, разработанный другой группой разработчиков в моей компании, и предоставляю дескриптор окна для этого кода. Этот дескриптор используется их плагином рендеринга в конвейере, который использует Direct3d для рендеринга видео на этой поверхности окна.

1 Ответ

1 голос
/ 11 февраля 2010

Видео отображается на аппаратном оверлее в видеоадаптере. Вам нужно создать свой собственный, чтобы наложить это наложение. Я думаю, что DirectX предоставляет такую ​​возможность, вы также можете получить ее, используя стиль окна WS_EX_LAYERED и SetLayeredWindowAttributes (). Какой вам нужно установить ключ прозрачности. Не уверен, что это глупый, кстати, я видел, как это ведет себя странно.

...