c++ - 如何拦截 "Show Desktop"事件?

标签 c++ windows winapi user-interface

我正在寻找一种方法来拦截 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/

相关文章:

c++ - map 和列表的迭代器显示不同的行为

windows - Task Scheduler 如何运行 exe 的多个实例?

java - 我们需要在同一台机器上安装 mahout 和 hadoop 吗?

c++ - 如何使用 Windows API 获取像素格式布局

sqlite - 如何在UWP应用程序中的应用程序文件夹之外访问文件(如SQLite数据库)?

c++ - 带有wxsqlite3运行时错误的Sqlite数据库加密

c++ - 尝试访问结构时 Matlab 编码器构建错误

c++ - Windows 事件,当尝试连接 wifi 时

winapi - 使用sigc和glib的win32应用程序如何实现消息循环

c++ - 如何将返回函数中的值作为另一个函数的参数传递,在其中使用它然后适本地调用它 C++?