簡體   English   中英

如何在Windows 8中的所有其他窗口之上保留帶有HWND句柄的OpenCV namedWindow?

[英]How do I keep an OpenCV namedWindow with a HWND handle on top of all other windows in Windows 8?

標題基本概括了所有內容。 我用namedWindow()創建了一個窗口,並用矩陣填充了它。 然后,我使用cvGetWindowHandle()將其分配給HWND,以便可以使用Windows函數SetWindowPos()。 我應該能夠使用它設置標志HWND_TOPMOST,SWP_NOMOVE和SWP_NOSIZE,以使其保持在所有其他窗口之上,即使我單擊它后面的窗口也是如此。

我在這里誤讀了一些東西,或者有了一個錯誤的想法,或者我認為問題可能出在我已經升級到Windows 8而他們不贊成使用此功能之類的事實。 還有另一種解決方法嗎?

我沒有安裝程序可以在c ++中嘗試此操作,但是我想在python中做類似的事情,所以最終使用了python win32庫。 通過結合以下調用(我假設您可以在c ++中找到win32的調用),我始終設法將屏幕顯示在頂部。 但是它沒有留在那里。 我必須在需要時提出它。

win32gui.SetForegroundWindow(hwnd)  # I use just this. apparently it can trigger permission error but I never had a problem with it
win32gui.SetFocus(hwnd)  # apparently doesn't trigger error without permission like setforegroundwindow
win32gui.BringWindowToTop(hwnd)  # not sure if this helps any
win32gui.SetActiveWindow(hwnd) #not sure if this helps any

暫無
暫無

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

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