2013-04-14 5 views
0

IVMRWindowlessControl9WindowlessControl w/VMR-9을 사용하여 동영상을 재생하고 있습니다. 내 동영상이 제대로 재생DirectShow (.NET)를 사용하여 창없는 컨트롤을 다시 그리는 이유는 무엇입니까?

IntPtr hdc = e.Graphics.GetHdc(); 
int hr = 0; 
hr = windowlessCtrl.RepaintVideo(this.Handle, hdc); 
e.Graphics.ReleaseHdc(hdc); 

아직 내가 위의 코드가없는 : 내가 처음에 비디오까지 설정 어려움이 있었을 때, 나는 온라인으로 볼 수있는 윈도우의 페인트 처리기에서이 코드 조각을 가지고 많은 예제를 발견. 위의 코드는 무엇을합니까? 그리고 그것을 사용하는데 요점이 있습니까?

답변

1

비디오 렌더러가 자동으로 처리하므로 대부분의 경우 명시 적으로 다시 칠할 필요가 없습니다. 예, 어떤 이유에서든 - 호스팅 윈도우가 WM_PAINT 윈도우 메시지 처리기와 같이 강제적으로 다시 요청해야하는 경우, RepaintVideo 방법이 귀하의 서비스에 있습니다.

은 MSDN, VMR Windowless Mode에 대한 자세한 내용보기 : 재생 중

는 응용 프로그램이 다음 Windows 메시지의 VMR에 통지해야합니다

WM_PAINT가 다음 이미지를 다시 칠하는 IVMRWindowlessControl :: RepaintVideo를 호출합니다. 그것이 무엇에 관해서는

1

: 비디오가 대상 색상 키를 사용하여 그리는 경우

  • , 그것은 대상 창에 키 색상을 그린다.

  • 이미지가 레터 박스로 표시되거나 일부가 다른 모니터에 떨어지는 경우 이미지로 덮히 지 않는 부분이 페인트됩니다.

이러한 사항 중 하나라도 적용되지 않으면 아무런 차이가 보이지 않을 수도 있습니다.