0

标题基本概括了所有内容。我用 namedWindow() 创建了一个窗口并用矩阵填充它。然后我使用 cvGetWindowHandle() 将它分配给 HWND,以便我可以使用 Windows 函数 SetWindowPos()。使用它我应该能够设置标志 HWND_TOPMOST、SWP_NOMOVE 和 SWP_NOSIZE,以便即使我点击它后面的窗口时也能将其保持在所有其他窗口之上。

我要么误读了这里的某些内容并且得到了错误的想法,要么我认为问题可能是我已升级到 Windows 8 并且他们已弃用此功能或其他内容。还有其他方法可以解决这个问题吗?

4

1 回答 1

0

我没有在 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
于 2013-03-12T18:37:24.440 回答