【发布时间】:2011-08-13 00:29:30
【问题描述】:
我想制作一个覆盖整个桌面但仍显示任务栏的无标题窗口。最好的方法是什么?
我可以检测任务栏的位置并调整窗口大小以排除它,但是我需要知道用户何时更改任务栏的大小/位置。
或者,是否有窗口样式或其他方式的组合可以确保我的窗口始终位于任务栏后面?
【问题讨论】:
-
你有什么理由不能最大化你的窗口?
-
响应 WM_GETMINMAXINFO 并仔细计算位置,使窗口标题和边框正好落在监视器区域之外并与任务栏重叠。没有一般情况下这在多台显示器上运行良好,它们不必具有相同的大小,并且只有一个显示任务栏。
-
Windows 会自动将任务栏放在带有标题的窗口后面(目前不确定确切的标准,但 WS_OVERLAPPEDWINDOW)。有一个最大窗口大小,所以我们不能创建一个带有标题的窗口,只是偏移它,所以标题/边框不显示。我目前的想法是继续使用 WS_OVERLAPPEDWINDOW,但要处理 WM_NCCALCSIZE,因此不存在标题 / 等。现在试试。