Windows 7:无论其他哪个窗口都有焦点,如何将一个窗口置于最前面?

Windows 7:无论其他哪个窗口都有焦点,如何将一个窗口置于最前面?,第1张

Windows 7:无论其他哪个窗口都有焦点,如何将一个窗口置于最前面?

我已经运行了很多年的代码,一直回​​到Windows95。双击应用程序系统任务栏图标时,我总是使用Win32
API函数(如BringWindowToTop和SetForegroundWindow)将应用程序窗口置于前台。这一切都在Windows
7上按预期停止了,在Windows
7上,我的输入窗口将最终位于其他窗口之后,并且窗口图标将在状态栏上闪烁。我想到的“解决方法”是这样。似乎可以在所有Windows版本上使用。

//-- show the window as you normally would, and bring window to foreground.//   for example;::ShowWindow(hWnd,SW_SHOW); ::BringWindowToTop(hWnd);::SetForegroundWindow(hWnd);//-- on Windows 7, this workaround brings window to top::SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);::SetWindowPos(hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE | SWP_NOSIZE);::SetWindowPos(hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_SHOWWINDOW | SWP_NOMOVE | SWP_NOSIZE);


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5623573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存