2012-05-03 7 views
0

Я использую библиотеку DirectShow.NET [http://directshownet.sourceforge.net/], и я использую ниже код для показа видеопотоков.Интерфейс IVideoWindow не отображает видеокадры должным образом в UserControl

videowindow.put_Owner(handle); 
videowindow.put_WindowStyle(WindowStyle.Child | WindowStyle.ClipChildren); 
videowindow.put_WindowState(DirectShowLib.WindowState.Show); 

Примечание: Ручка System.Windows.Forms.UserControl ручки [this-> Handle]

Проблема заключается в том, что:

  • На моем пользователь управления видеокадрами не отображаются должным образом: я вижу половину видеокадра, а другая половина вне экрана.
  • Также, когда я масштабирую свой пользовательский контроль, кадры видеопотока не являются масштабированными.

Что может быть причиной этого? Как я могу это исправить?

Update:

Основываясь на римском Ответе Я добавил следующий код:

videoWindow.SetWindowPosition(this.ClientRectangle.Left, 
       this.ClientRectangle.Top, 
       this.ClientRectangle.Width, 
       this.ClientRectangle.Height); 

И теперь я могу в состоянии видеть кадр видео в моем управлении прямоугольником пользователя должным образом ....

+0

Вы устанавливаете 'IVideoWindow.SetWindowPosition'? Вы также несете ответственность за обновление, когда меняется макет вашего окна. –

+0

Roman, напишите ваш комментарий в качестве ответа, я приму его. Спасибо, Роман Р. – Novalis

ответ

1

Кроме того, чтобы поставить окно визуализации видео в качестве дочернего элемента управления и предоставить оконные стили, вы должны установить IVideoWindow.SetWindowPosition. Вы также несете ответственность за обновление, когда меняется макет вашего окна.

 Смежные вопросы

  • Нет связанных вопросов^_^