隱藏視窗工作列圖示的三種方法
本文介紹三種方法,可以實現隱藏視窗在工作列中的圖示。其中前兩種比較坑爹,不建議使用。
轉載:
方法1:
ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);
為視窗設定WS_EX_TOOLWINDOW屬性。會有以下效果:
1. 視窗圖示不在工作列顯示。
2. 視窗不顯示在Alt+Tab的切換列表中。
3. 在工作管理員的應用程式Tab中不顯示。
方法2:
使用ITaskbarList介面的DeleteTab方法。這個方法在XP下是有問題的,被刪除的工作列圖示,在視窗被啟用時,會再次出現!!再次坑爹!!
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;
}
方法3:
目前我認為比較妥善的一個辦法。首先建立一個視窗,並將此視窗隱藏。再以此視窗為父視窗建立你的程式視窗,再利用方法2刪除掉工作列中的圖示。
這樣處理之後,工作列中的圖示就不會再死而復生了。
通過Spy++去看QQ的主視窗,它也有一個Caption為空的父視窗,想必也是利用的這個方案吧。