我已经运行了很多年的代码,一直回到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);
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)