Visual C++ 7.1Visual C++ 7.0Windows 2003Windows 2000Visual C++ 6.0Windows XPMFC中级开发Visual StudioWindowsC++
如何隐藏任务栏中的窗口






2.80/5 (22投票s)
2004 年 4 月 17 日
1分钟阅读

133401
本文档解释了如何在窗口仍然处于活动状态时,隐藏任务栏中的窗口名称。
引言
有时我们可能希望创建一个不需要任务栏中烦人框的应用程序。希望这个代码片段能帮到你。
步骤
- 全局声明
以下是关于所用接口的一些简短说明
DECLARE_INTERFACE(iface)
用于声明一个**不**从基接口派生的接口。DECLARE_INTERFACE_(iface, baseiface)
用于声明一个**从**基接口派生的接口。这是所使用的那个。并且该接口将从IUnknown
接口派生。
然后,让我们为派生的接口创建一个别名定义。
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;
- 在基于对话框的类声明中
这取决于你,你是否希望将
pTaskbar
声明为对话框类的一个属性。实际上,这没有问题,因为实现(下一步)只需要窗口句柄 (HWND
)。class CMyDlg : public CDialog { . . //Init our Taskbar handler LPITaskbarList pTaskbar; . . }
不要忘记在对话框类的构造方法中将
pTaskbar
设置为NULL
。 - 初始化
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); . . . }
- 实现
这是你可以用来隐藏任务栏中的“框”的函数。
void CMyDlg::DeleteTaskbar() { //Hide it pTaskbar->DeleteTab(this); }
尝试 pTaskbar
的其他方法,你将会体验到一些东西。
如果本文档没有解释很多,请原谅我。我的目的是仅仅提供另一种替代方案。因为这种“方法”还没有被发布过。