У меня есть приложение с графическим интерфейсом, которое использует GStreamer для захвата видео с карт захвата, а затем воспроизводить видео.Аудио- и видеопотоки отправляются в GStreamer, и GStreamer автоматически открывает собственное окно для воспроизведения видео.После того, как окно видео открыто, мне нужно взять окно видео и удалить границу, установить размер и положение окна и сделать мое окно GUI родителем этого окна, чтобы оно было «привязано» к моему окну GUI.
Поскольку я знаю имя видеоокна, я использую FindWindow()
, чтобы получить дескриптор HWND для окна.Затем я передаю это HWND на SetWindowPos()
следующим образом SetWindowPos(VideoWindow, GUIWindow, GUIWindowLeft, GUIWindowTop, 640, 360, SWP_SHOWWINDOW)
.Затем я устанавливаю родительский элемент видео окна SetParent(VideoWindow, GUIWindow)
.
. Когда я запускаю свое приложение, в течение очень короткого момента кажется, что мое окно изменено в размере и размещено правильно, но затем окно возвращается в положение по умолчанию(почти как если бы просто пренебрегали тем, что SetWindowPos()
даже называли).Есть ли очевидная причина, почему это происходит?Я новичок в области манипулирования окнами, поэтому вполне возможно, что я делаю простую ошибку, но это не так, поскольку мое окно будет правильно позиционироваться в течение очень короткого момента, а затем вернется в положение по умолчанию.