利用WS_EX_TOOLWINDOW这个属性,将窗口设置为工具窗口
隐藏任务栏图标
//不在任务栏显示
LONG styleValue = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);
styleValue &= ~(WS_EX_APPWINDOW);//当窗口可见时将一个顶层窗口放置在任务栏上
styleValue |= WS_EX_TOOLWINDOW; //工具条窗口样式
SetWindowLong(m_hWnd, GWL_EXSTYLE, styleValue);
恢复任务栏图标
//在任务栏显示
LONG styleValue = ::GetWindowLong(m_hWnd, GWL_EXSTYLE);
styleValue |= (WS_EX_APPWINDOW);//当窗口可见时将一个顶层窗口放置在任务栏上
styleValue &= ~(WS_EX_TOOLWINDOW); //去掉工具栏窗口属性,使其在任务栏可见
SetWindowLong(m_hWnd, GWL_EXSTYLE, styleValue);
资料:
WS_EX_TOOLWINDOW,带有这个属性的窗口有以下特点:
1. 不在任务栏显示。
2. 不显示在Alt+Tab的切换列表中。
3. 在任务管理器的窗口管理Tab中不显示。
我们可能会出于某种目的会为我们的窗口设置这个属性,但有一个副作用,就是这个窗口被拖动时,可以被拖动到任务栏里面去。
图片中,任务栏后面那个模糊的身影,就是我那悲催的窗口。
参考资料:
https://blog.csdn.net/harbinzju/article/details/7043217
http://zwkufo.lofter.com/post/65527_87766c