隐藏/显示所有窗口并恢复 Z 顺序



我正在开发一个应用程序,只需按一下按钮即可隐藏并显示桌面上的所有窗口,以使它们不碍事。 问题是,当我展示它们时,它们不像我隐藏它们时那样在正确的 Zorder 中。 有没有办法获得Zorder并以正确的顺序显示它? 我正在使用 Win7 64。 我用它来隐藏/显示:

ShowWindow(hwnd, SW_HIDE);    // hide
ShowWindow(hwnd, SW_SHOWNA);  // show

使用这些函数来保持 z 顺序

SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER|SWP_HIDEWINDOW);
SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE|SWP_NOZORDER|SWP_SHOWWINDOW);

尽管更好的方法是最小化窗口(仅查找选项卡窗口)。您必须跟踪需要使用SW_MAXIMIZE还原哪个窗口以及需要使用SW_RESTORE还原哪个窗口。您可以使用GetWindowPlacement来检查窗口的可见性。

最新更新