因此,我有一个应用程序,该应用程序使用SHAppBarMessage winapi调用注册一个AppBar,在屏幕顶部放置一个新栏,并防止其他应用程序占用该空间,类似于系统TaskBar的方式(默认情况下)在屏幕底部。
一切都很好-直到用户尝试最大化其FormBorderStyle设置为FixedToolWindow或SizableToolWindow的窗口,在这种情况下,工具窗口被塞在AppBar下方。我注意到工具窗口甚至被藏在系统TaskBar下(注意第二个屏幕截图底部的红色框),这样您便看不到它们的底部,所以我担心这是不可能的使工具窗口的行为像普通窗口一样,但是我想问一下。
这是一个AppBar的快速示例(不是我的代码,而是一个重新创建的问题。不幸的是,它在VB中,但是将其剪切并粘贴到表单代码中是很直接的。)
如果运行该项目,然后使用“固定/可调整大小” ToolWindow边框样式创建另一个空项目,并尝试将其最大化,则会看到问题。在所附的屏幕截图中,注意到我放在角落的红色框被部分隐藏了-不尊重AppBar屏幕空间的保留。 注意:我已经在处理全屏应用程序(例如mstsc,全屏视频等)也将塞入我的应用栏的事实,但是在这种情况下,Windows本身会向窗口发送ABN_FULLSCREENAPP消息,说:“嘿,有全屏应用程序正在运行”,在这种情况下,我可以隐藏我的应用程序。 (请参阅https://docs.microsoft.com/en-us/windows/win32/shell/abn-fullscreenapp)似乎在工具窗口中不存在这样的消息。至少这是一种解决方法,但并不理想。
P.S .:我无法更改工具窗口本身,因为它们来自其他应用程序,所以我希望找到某种方法使它们更好地与AppBar应用程序配合使用!