这是一个棘手的问题。我想制作一个程序,在桌面顶部绘制一个条形图。然后,我希望每个打开的窗口都不会绘制此标题栏,即使给定的桌面窗口最大化也是如此。我记得我看到过类似的事情,但是我不记得这个节目了。我想这些扩展任务栏类型的程序必须做类似的事情,让Windows不与第二台显示器上的扩展任务栏重叠。
Windows需要什么框架来实现这一目标?活动可访问性,以查看何时创建窗口,然后以某种方式获取窗口句柄并调整大小和位置?
我可以遍历窗口列表并移动它们但是当它们打开或最大化时呢?
有关如何实现此行为的任何想法?
答案 0 :(得分:1)
您正在寻找的内容称为“工作区”,在MSDN上定义为“屏幕中未被系统任务栏或应用程序桌面工具栏遮挡的部分”。您可以使用SystemParametersInfo
的 SPI_SETWORKAREA 操作设置工作区 - 您希望将其设置为现有工作区减去新栏的区域。
答案 1 :(得分:0)
听起来你想要创建一个AppBar:Windows内置支持管理桌面区域,包括允许你让它为你的应用程序保留一侧的空间。有关详细信息,请参阅MSDN: Using Application Desktop Toolbars。
MSDN摘要:
应用程序桌面工具栏(也称为appbar)是一个类似于Windows任务栏的窗口。它固定在屏幕的边缘,通常包含允许用户快速访问其他应用程序和窗口的按钮。系统会阻止其他应用程序使用appbar使用的桌面区域。在任何给定时间,桌面上都可以存在任意数量的应用程序。