WS_EX_APPWINDOW做什么?

Aut*_*tAM 4 winapi

这只是一个没有文档的已弃用的窗口样式,或者我在搜索它时遇到了一个缺陷.

我的问题是,这面旗帜是做什么的?是否有我可能需要的支持等价物?

建议表示赞赏!

Dav*_*nan 22

WS_EX_APPWINDOWMSDN上记录的扩展窗口样式.它绝对不被弃用,是一种完全支持和广泛使用的风格.

文档说明了样式:

当窗口可见时,强制顶层窗口进入任务栏.

这是一个相对平淡的陈述,低估了这种风格的目的.通常,强制顶级窗口进入任务栏的属性是顶级窗口是无主的.默认情况下,顶级拥有的窗口不会显示在任务栏上.所以,如果由于某种原因你希望将一个顶级拥有的窗口放到任务栏上,那么WS_EX_APPWINDOW就是解决方案.

虽然有一篇MSDN文章描述了任务栏中出现窗口的规则,但它并不像应该的那样清晰.Raymond Chen的文章更准确地描述了它:

窗口进入任务栏有一些基本规则.简而言之:

  • 如果设置了WS_EX_APPWINDOW扩展样式,则它将显示(在可见时).
  • 如果窗口是顶级无主窗口,则它将显示(当可见时).
  • 否则它不会显示.

  • Raymond Chen 的文章中描述的规则并不完整。如果扩展窗口样式设置了“WS_EX_NOACTIVATE”或“WS_EX_TOOLWINDOW”,则该窗口将不会有任务栏按钮,即使它是可见的、无主的顶级窗口。 (3认同)