如何拦截“显示桌面”事件?

时间:2011-03-29 19:40:24

标签: c++ windows winapi user-interface

我正在寻找拦截ShowDesktop事件并将窗口设置在前面的方法。 有没有办法不使用API​​钩子呢? 谢谢, 奥马尔。

1 个答案:

答案 0 :(得分:4)

如果您正在编写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来完成。

我应该早些说清楚,道歉。