1、利用COM提供的ITaskbarList接口
转载自:http://blog.csdn.net/mynamelj/article/details/1116797
注意:在用该函数之前必需初始化COM库.
BOOL ShowInTaskbar(HWND hWnd, BOOL bShow)
{
HRESULT hr;
ITaskbarList* pTaskbarList;
hr = CoCreateInstance( CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER,
IID_ITaskbarList, (void**)&pTaskbarList );
if(SUCCEEDED(hr))
{
pTaskbarList->HrInit();
if(bShow)
pTaskbarList->AddTab(hWnd);
else
pTaskbarList->DeleteTab(hWnd);
pTaskbarList->Release();
return TRUE;
}
return FALSE;
}
2、在主对话框domodal之前生成一个隐藏的对话框
1)新增一个隐藏对话框
BOOL CTestDlgApp::InitInstance()
{
...
CFrameWnd a; //生成一个框架窗口对象
a.Create(NULL,"aa");//生成窗口,不带ws_visible,也就是说不会显示出来
CTestDlgDlg dlg;
m_pMainWnd = &a;//将这个隐藏窗口设为主窗口
int nResponse = dlg.DoModal();
...
}
2)移除对话框WS_EX_APPWINDOW风格
在对话框的oninitdialog里加入 ModifyStyleEx(WS_EX_APPWINDOW,0);