저는 스트리밍 비디오가 그려지는 하나의 창을 포함하는 activeX 컨트롤을 가지고 있습니다. 난 내가 즉, 대화 상자의 [알파 블렌딩] 계층화 속성과 함께 SetLayeredWindowAttributes (...)를 사용하거나 투명 설정 (다양한 방법으로 투명 또는 반투명 만든 다른 창에서 만든 별도의 대화 상자가 재산). 스트리밍 비디오를 그리는 창 위에 투명한 창 대화 상자 및 그리기 프리미티브를 유지하려면 어떻게해야합니까?
는 또한 나는 대화는 항상 스트리밍 비디오 창 위에 그릴의 창을 얻기 위해 시도하는 다양한 방법을 사용하려했지만 아무도 나를 위해 일을 입증 없다. 대화 상자에 버튼이 있거나 LineTo (...) 호출을 사용하여 투명한 표면에 그릴 경우 해당 버튼은 비디오 상단에 남아 있지 않습니다. SetWindowPos를 사용하여 두 윈도우의 z- 순서에 영향을 주려고했지만 "TopMost"와 같은 대화 상자 창 속성을 변경하려고했지만 아무런 효과가 없었습니다.사람은 스트리밍 비디오를 통해 오버레이 창에 대한이 같은 뭔가를 시도하고 스트리밍 비디오 후 항상 전면 창을 그림에서 일할 수있는 Z-주문을받은 적이 있습니까?
업데이트 : 02/10/10 - LWA_COLORKEY를 사용하여 SetLayeredWindowAttributes (...)와 WS_EX_LAYERED 속성을 사용하여 시도해보고 내가 찾고있는 것을 달성했습니다. 레이어드 속성은 WS_CHILD 스타일과 함께 사용할 수 없으므로이 솔루션은 비디오 윈도우가있는 오버레이 윈도우 위치를 몇 가지 필수적으로 관리합니다. 또한 내가 제거하려고하는 다른 기이 한 일도 있습니다. 예를 들어, 비디오가있는 ActiveX 컨트롤 창이 IE 탭에 포함되어 있고 다른 탭으로 전환하면 오버레이 창의 컨트롤이 새 탭 위에 남아 있습니다 (WS_POPUP 스타일 사용시). 스위치를 결정하고 윈도우 가시성을 숨기는 다른 대안을 처리 할 대체 수단이 있는지 계속 조사하십시오.
저는 미디어 (비디오) 프레임 워크를 사용하고 있습니다. 우리 회사의 다른 개발 그룹이 개발되었고이 코드에 윈도우 핸들을 제공하고 있습니다. Direct3d를 사용하여 비디오를 렌더링하는 파이프 라인의 렌더링 플러그인에서이 핸들을 사용하고 있습니다. UI 그룹의 구성원은 동영상 맨 위에 영구적으로 레이어가있는 다른 응용 프로그램을 가지고 있지만 QT (교차 플랫폼 응용 프로그램 및 UI 프레임 워크)를 사용하고 있습니다. 그들은 Qt :: FramelessWindowHint를 사용하여 항상 z 순서 위에 머무르는 경계선없는 윈도우를 생성하도록 지정했습니다. Qt에서 할 수 있다면 VC++에서 가능해야합니다. – flawlesslyfaulted
하드웨어 오버레이가 아니므로이 주석을 무시해도됩니다. –