我正在开发Application Desktop Toolbar(下一个工具栏)。当全屏应用程序窗口打开或关闭时(例如通过 F11 ),工具栏会收到ABN_FULLSCREENAPP
通知。当客户区占据整个屏幕时,窗口是全屏的。工具栏应该从最顶层的z顺序中取出,这样它们就不会覆盖全屏窗口。为此,我使用SetWindowPos()
标记为HWND_BOTTOM/HWND_TOPMOST
。
问题:在Windows 10上打开全屏应用程序窗口时(例如,通过 F11 的资源管理器窗口)工具栏会收到ABN_FULLSCREENAPP
并将自己发送到底部z-订购。然后,当按下 Win + Tab 时,将显示“任务视图”。任务视图占据屏幕的整个工作区域 - 整个屏幕不包括任务栏区域和工具栏区域。但工具栏仍保留在全屏窗口下方,Takbar显示在顶部,请参见下图。当TaskVew打开时,我希望工具栏也位于全屏窗口的顶部。
在打开任务视图期间,工具栏不会收到任何消息。显然,自Microsoft stopped开发ADT API以来,工具栏没有特别的消息。
可能的解决方案:
1)通过在全屏窗口的打开和关闭之间执行计时器中的功能,使用similar question中的解决方案;
2)将LowLevelKeyboardProc()
与SetWindowsHookEx()
一起使用。
两种解决方案都不优雅。如果您知道检测打开/关闭TaskView的其他方法,请报告。未记录的方法也很有用。