从任务栏中隐藏窗口而不使用 WS_EX_TOOLWINDOW

Posted

技术标签:

【中文标题】从任务栏中隐藏窗口而不使用 WS_EX_TOOLWINDOW【英文标题】:Hide Window from taskbar without using WS_EX_TOOLWINDOW 【发布时间】:2015-06-19 08:13:40 【问题描述】:

我有一个主窗口和一个关于窗口,关于窗口是从主窗口打开的,但问题是关于窗口显示在任务栏中!

我发现为了在任务栏中隐藏一个窗口,我可以使用WS_EX_TOOLWINDOW样式,但是我不希望关于窗口有这种样式,那么还有其他方法吗?

【问题讨论】:

【参考方案1】:

稍微简化一下,如果:

它不属于所有并且没有 WS_EX_TOOLWINDOW 扩展样式,或者 它具有 WS_EX_APPWINDOW 扩展样式。

因此,您的解决方案是让窗口拥有。它应该归您的应用程序的主窗口所有。创建 about 窗口时,将主窗口句柄作为 hWndParent 传递。

hWndAbout := CreateWindowEx(..., hWndMainWindow, ...);
                                 ^^^ hWndParent

除了解决任务栏的问题,设置所有者还可以确保关于窗口始终显示在主窗口的顶部。

【讨论】:

另外,父窗口不需要是你的主窗口或任何可见窗口。如果你只是想让一个窗口隐藏在任务栏中,根据docs.microsoft.com/en-us/windows/win32/shell/…,你可以先创建一个不显示它的窗口,并在创建新窗口时将其HWND作为父窗口。

以上是关于从任务栏中隐藏窗口而不使用 WS_EX_TOOLWINDOW的主要内容,如果未能解决你的问题,请参考以下文章

如何在任务栏中显示 QMainWindow

从 Windows 10 的任务栏中删除窗口

delphi2007如何让程序不在任务栏中隐藏和显示?

隐藏 Windows任务栏中的窗口显示

隐藏 Windows任务栏中的窗口显示

Qt笔记-窗口程序在任务栏中隐藏及永久置顶