How To Hide A Window in TaskBar






2.80/5 (22 votes)
Apr 17, 2004
1 min read

132742
This article explains how to hide a window's name in the taskbar while the window itself is still active.
Introduction
Sometimes we may want to make an app which doesn't actually need an annoying box in the taskbar. I hope this snippet will help.
Steps
- Global Declaration
Here is some short explanation about the interface used:
DECLARE_INTERFACE(iface)
is used to declare an interface that does not derive from a base interface.DECLARE_INTERFACE_(iface, baseiface)
is used to declare an interface that does derive from a base interface. This is the one that is used. And the interface will be derived fromIUnknown
interface.
And then, let's create an alias definition for the derived interface.
DECLARE_INTERFACE_(ITaskbarList,IUnknown) { STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID* ppvObj) PURE; STDMETHOD_(ULONG,AddRef)(THIS) PURE; STDMETHOD_(ULONG,Release)(THIS) PURE; STDMETHOD(ActiveTab)(HWND) PURE; STDMETHOD(AddTab)(HWND) PURE; STDMETHOD(DeleteTab)(HWND) PURE; STDMETHOD(HrInit)(HWND) PURE; }; //alias typedef ITaskbarList *LPITaskbarList;
- In the Dialog Based Class declaration
Here is up to you, whether you want to declare the
pTaskbar
as an attribute of a Dialog class or not. It's not a problem, actually, since the implementation (next step) will only need the window handle (HWND
).class CMyDlg : public CDialog { . . //Init our Taskbar handler LPITaskbarList pTaskbar; . . }
Don't forget to set the
pTaskbar
toNULL
in the construction method for your dialog class. - Initialization
BOOL CMyDlg::OnInitDialog() { . . //initializes the Component Object Model(COM) CoInitialize(0); //We call below function since we only need to create one object CoCreateInstance(CLSID_TaskbarList,0, CLSCTX_INPROC_SERVER,IID_ITaskbarList,(void**)&pTaskbar); //Below function will initialize the taskbar list object pTaskbar->HrInit(this); . . . }
- Implementation
This is the function that you can use to hide the "box" in taskbar.
void CMyDlg::DeleteTaskbar() { //Hide it pTaskbar->DeleteTab(this); }
Try the other methods for pTaskbar
, and you will experience some stuff.
Forgive me if this article doesn't explain much. My purpose is just to provide another alternative. Since this "way" hasn't been posted yet.