我正在寻找一种方法来拦截 ShowDesktop 事件并将我的窗口设置在前面。 有没有不使用 API Hook 的方法? 谢谢, 奥马尔。
最佳答案
如果您正在编写一个 Windows 任务栏样式的停靠栏,那么只需确保您的窗口设置了 WS_EX_TOPMOST
并且“显示桌面”将保留它。或者使用 SetWindowPos
使其在创建后成为最顶层的窗口,例如:
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);
更新:您需要使用 Windows 应用程序栏 API 来制作“停靠”风格的应用程序。参见 here了解更多详情。
应用程序栏也需要从您按 Alt+Tab 等时显示的顶级列表中删除,这可以通过添加 WS_EX_TOOLWINDOW
并删除 WS_EX_APPWINDOW
来完成。
我应该早点说清楚,抱歉。
关于c++ - 如何拦截 "Show Desktop"事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5477961/