首页 > 代码库 > 隐藏windows任务栏中的窗口显示
隐藏windows任务栏中的窗口显示
在实际应用中遇到类似下列需要:
隐藏windows窗口,在windows任务栏中窗口不可见,但应用程序在后台运行。
windows应用程序的窗口默认会在任务栏中添加一个可见的窗口项,方便用户操作和在不同应用程序中切换。
考虑到windows操作系统是基于shell的,查找shell的接口资料会发现 ITaskbarList interface 。ITaskbarList提供了AddTab和DeleteTab函数,用于向任务栏中添加删除窗口项。
第一种方法就是使用ITaskbarList接口,在程序启动时将窗口项从任务栏中删除。
代码如下:
1 1 ITaskbarList* pTaskbarList; 2 2 hr = CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, 3 3 IID_ITaskbarList, (void**)&pTaskbarList ); 4 4 5 5 if(SUCCEEDED(hr)) 6 6 { 7 7 pTaskbarList->HrInit(); 8 8 if(bShow) 9 9 pTaskbarList->AddTab(hWnd);10 10 else11 11 pTaskbarList->DeleteTab(hWnd);12 12 13 13 pTaskbarList->Release();14 14 }
从另一个角度考虑,windows窗口是否有类似的属性,用于指定窗口样式,不在任务栏中显示呢?
下面可以看看Extended Window Styles的资料,其中有这样的扩展属性:WS_EX_TOOLWINDOW。指定该属性表示窗口将会作为浮动工具栏使用,其窗口不会再任务栏中显示,并且有特殊的显示处理逻辑,这也恰好符合需要。
那么使用这种方式就需要调用CreateWindowEx函数。
另外,如果你希望窗口完全不可见,可以在创建窗口的时候指定窗口属性为不可见,这样就是直接创建一个后台进程用于处理其他事务。但不推荐这么处理,毕竟窗口完全不可见的话,可以直接CUI编程,没必要使用GUI。
本文作者:Tocy
版权所有,请勿用于商业用途,转载请注明原文地址。本人保留所有权利。
隐藏windows任务栏中的窗口显示
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。