首页 > 日常 > c++程序窗口不在任务栏上显示

c++程序窗口不在任务栏上显示

2014年4月18日 发表评论 阅读评论

一般说来,程序在运行的时候,会在任务栏上显示图标,当然XP系统还是会一起显示程序的标题。虽然加班是不变的,而需求是一定变化的。出于某些需要,要实现程序在运行时不显示窗体。对于c#程序而言,只用设置 ShowInTaskbar = false 即可。而对于c++程序,还不能这么简单的使用。

今天衣服自己洗分享的是使用 ITaskbarList 接口来实现c++程序窗口不在任务栏上显示的目的。

从IE4开始,window提供了ITaskbarList 接口,我们可以简单地调用即可。

首先我们需要添加头文件的引用    #include “ShObjIdl.h”

然后,我们在代码里添加这样一个方法:
void ShowInTaskbar(HWND hWnd, BOOL bshow){
HRESULT hr;
ITaskbarList *pList;
hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
IID_ITaskbarList, (void **)&pList);

pList->HrInit();

if (bshow){
pList->AddTab(hWnd);
}
else{
pList->DeleteTab(hWnd);
}

pList->Release();
}

最后一步,在窗口初始化的时候,调用这个方法即可。两个参数分别为窗体的句柄,是否显示。

分类: 日常 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.