为什么有些任务栏上的按钮一点就消失了
为什么 按钮 一点 消失 任务栏 有些
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
相关文章
- innodb为什么选择B+ Tree而不是跳表,Redis为什么选择跳表而不是B+ Tree
- 为什么职场第一开发语言会是SQL?看完这些你就瞬间明白了
- 【不是问题的问题】为什么STM32的Flash地址要设置到0x08000000
- 为什么说任何基于比较的算法将5个元素排序都需要7次?
- 【高并发】终于弄懂为什么局部变量是线程安全的了!!
- 为什么 PCB 生产时推荐出 Gerber 给工厂?
- 为什么不能将文件直接拖放到任务栏按钮上呢?
- 为什么只有静态成员函数才能作为回调函数?
- 数据结构与算法_20 _ 散列表(下):为什么散列表和链表经常会一起使用?
- php添加扩展 在phpinfo能看到该扩展,但在cli用php -m 却看不到,为什么呢,求指教