C++ 如何制作一个';s全屏显示,但仍显示任务栏

C++ 如何制作一个';s全屏显示,但仍显示任务栏,c++,windows,winapi,C++,Windows,Winapi,我想制作一个覆盖整个桌面的无标题窗口,但仍然显示任务栏。最好的方法是什么 我可以检测任务栏的位置并调整窗口大小以排除任务栏,但我需要知道用户何时更改任务栏的大小/位置 或者,是否有一种窗口样式组合或其他东西可以确保我的窗口始终位于任务栏后面?使用返回值设置窗口位置,并将SPI_GETWORKAREA作为参数传递 检索主显示监视器上工作区域的大小。 工作区是屏幕上未被系统遮挡的部分 任务栏或应用程序桌面工具栏。pvParam参数必须是 指向接收工件坐标的RECT结构 面积,以虚拟屏幕坐标表示 最大

我想制作一个覆盖整个桌面的无标题窗口,但仍然显示任务栏。最好的方法是什么

我可以检测任务栏的位置并调整窗口大小以排除任务栏,但我需要知道用户何时更改任务栏的大小/位置


或者,是否有一种窗口样式组合或其他东西可以确保我的窗口始终位于任务栏后面?

使用返回值设置窗口位置,并将SPI_GETWORKAREA作为参数传递

检索主显示监视器上工作区域的大小。 工作区是屏幕上未被系统遮挡的部分 任务栏或应用程序桌面工具栏。pvParam参数必须是 指向接收工件坐标的RECT结构 面积,以虚拟屏幕坐标表示


最大化一个没有标题/边框的窗口。

你有什么理由不能最大化你的窗口吗?回复WM_GETMINMAXINFO并仔细计算位置,使窗口标题和边框正好位于监视器区域之外,并被任务栏重叠。一般情况下,这在多个显示器上都不适用,它们不必具有相同的大小,并且只有一个显示器显示任务栏。Windows会自动将任务栏放在带有标题的窗口后面(目前不确定确切的条件,但WS_OVERLAPPEDWINDOW)。有一个最大窗口大小,因此我们无法创建带有标题的窗口,而只需将其偏移,以使标题/边框不显示。我目前的想法是继续使用WS_OVERLAPPEDWINDOW,但要处理WM_NCCALCSIZE,这样标题/等就不存在了。正在尝试。不幸的是,这将只覆盖一个显示器,而不是整个桌面。希望它能工作,虽然-优雅的想法。除了小细节,你不能删除边框和标题从窗口不重新创建它。嗯,这不是次要的。如果你想让窗户覆盖多个监视器,那你就沉没了,不是吗?桌面通常不是长方形的,有或没有任务栏。如果我的答案解决了你的问题,请勾选左边的绿色勾号接受。如果没有,请要求采取行动或扩大你的问题。谢谢