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

时间:2016-05-19 21:23:18

标签: c++ windows api

我正在开发一个应用程序,只需按一下按钮就可以隐藏并显示桌面上的所有窗口,让它们脱离困境。问题在于,当我展示它们时,它们并不像我隐藏它们那样处于正确的Zorder状态。有没有办法获得Zorder并以正确的顺序显示它?我正在使用Win7 64.我正在使用它来隐藏/显示:

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

1 个答案:

答案 0 :(得分:1)

使用这些功能来保持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来检查窗口的可见性。