zl程序教程

您现在的位置是:首页 >  其它

当前栏目

为什么有些任务栏上的按钮一点就消失了

为什么 按钮 一点 消失 任务栏 有些
2023-09-14 09:10:45 时间

蝎子

有时候,你会发现这么一个现象:点击任务栏上的一个空白按钮后,这个按钮就消失不见了。这是为什么呢?在MSDN上,有一篇文章《some basic rules on which windows go into the taskbar》做了些介绍,简而言之:
> 如果一个窗口设置了WS_EX_APPWINDOW风格,则它会显示在任务栏上。
> 如果一个窗口是顶级且未被拥有的,则它会显示在任务栏上。
> 其他的所有情况,都不会显示在任务栏上。

(尽管ITaskbarList接口把事情搞得有些复杂),当一个任务栏可感知(taskbar-eligible)窗口变为可见状态时,任务栏将会为这个窗口创建一个按钮。当它变为隐藏状态时,任务栏会移除这个按钮。如果窗口的状态处于任务栏可感知(taskbar-eligible)和任务栏不可感知(taskbar-ineligible)这两种状态之间时,当这个窗口是可见时,则一个空白的按钮会显示在任务栏上。

考虑以下行为模式

> 窗口是任务栏可感知的。
> 窗口如果变为可见状态,则任务栏按钮创建。
> 窗口变成了任务栏不可感知的。
> 窗口变成了不可见状态,因为此时窗口不是任务栏可感知的,所以任务栏忽略了这个变化。

造成的结果

在任务栏会出现一个没有挂接到任何窗口的按钮。这个也是文档会这样建议:”如果你希望将一个窗口的风格进行动态的设置为一个不支持任务栏按钮的风格,你必须先将窗口进行隐藏(通过传入SW_H