簡體   English   中英

SetWindowPos()不會移動或調整窗口大小

[英]SetWindowPos() not moving or resizing window

我有一個GUI應用程序,該應用程序使用GStreamer從捕獲卡捕獲視頻,然后播放視頻。 音頻和視頻流將發送到GStreamer,GStreamer會自動打開其自己的窗口以播放視頻。 打開視頻窗口后,我需要獲取視頻窗口並移除邊框,並設置窗口大小和位置,並使我的GUI窗口成為該窗口的父窗口,以便將其“錨定”到我的GUI窗口中。

因為我知道視頻窗口的名稱,所以我使用FindWindow()來獲取窗口的HWND句柄。 然后,我將HWND傳遞給SetWindowPos()如下SetWindowPos(VideoWindow, GUIWindow, GUIWindowLeft, GUIWindowTop, 640, 360, SWP_SHOWWINDOW) 然后,設置視頻窗口SetParent(VideoWindow, GUIWindow)的父SetParent(VideoWindow, GUIWindow)

當我啟動應用程序時,在很短的時間內,看起來好像我的窗口正在調整大小並正確放置,但是隨后窗口返回到其默認位置(幾乎就像它只是忽略了SetWindowPos() )。 發生這種情況的原因很明顯嗎? 我不熟悉窗口操作,因此很可能犯了一個簡單的錯誤,但由於我的窗口會在很短的時間內正確定位然后又回到默認位置,所以並沒有犯錯。

這是因為設置了SWP_SHOWWINDOW或SWP_HIDEWINDOW,不會移動或調整窗口大小(請參見SetWindowPos文檔)。 似乎有點奇怪。 嘗試使用其他標志。

從文檔:

如果設置了SWP_SHOWWINDOW或SWP_HIDEWINDOW標志,則無法移動窗口或調整窗口大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM