我想带一个窗口(来自其他应用程序)。目前我使用:如何将其他应用程序窗口置于前面而不激活它?
::SetWindowPos(hwnd, GetForegroundWindow(), 0, 0, 0, 0, SWP_ASYNCWINDOWPOS | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE);
它工作正常,但在一些(未知对我)的情况下,它使窗口总在最前面。根据MSDN,我应该使用HWND_NOTOPMOST
代替GetForegroundWindow()
,但它不起作用 - 窗口停留在其他窗口(并不总是在顶部)。
如何在不激活的情况下将窗户放在前面?
如果窗口已经是非最顶层的窗口,文档说'HWND_NOTOPMOST'“不起作用。 – 2011-03-10 10:03:43
这里的一些替代方法:http://stackoverflow.com/questions/916259/win32-bring-a-window-to-top – 2011-03-10 10:05:36
*无*提出的其他问题的答案是一个很好的解决方案。整个问题只是一团糟。大卫在这里得到了你的答案。 – 2011-03-10 10:09:03