介绍
有时候,我们可能想要创建一个不需要烦人的任务栏框的应用程序。我希望这段代码能有所帮助。
步骤
全球声明
下面是一些关于使用界面的简短说明:
DECLARE_INTERFACE(iface)用于声明不是从基接口派生的接口。
DECLARE_INTERFACE_(iface, baseiface)用于声明一个确实是从基接口派生的接口。这是被使用的。接口将派生自IUnknown接口。
然后,让我们为派生接口创建一个别名定义。隐藏,复制CodeDECLARE_INTERFACE_ (ITaskbarList IUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid,LPVOID* ppvObj)
STDMETHOD_ (ULONG AddRef)(这)纯;
STDMETHOD_ (ULONG,释放)(这)纯;
STDMETHOD (ActiveTab) (HWND)纯;
STDMETHOD (AddTab) (HWND)纯;
STDMETHOD (DeleteTab) (HWND)纯;
STDMETHOD (HrInit) (HWND)纯;
};
/ /别名
typedef ITaskbarList * LPITaskbarList;
在基于对话框的类声明
是否要将pTaskbar声明为对话框类的属性,这取决于您。实际上,这不是问题,因为实现(下一步)只需要窗口句柄(HWND)。隐藏,复制Codeclass CMyDlg: public CDialog
{
。
。
//Init我们的任务栏处理程序
LPITaskbarList pTaskbar;
。
。
}
不要忘记在对话框类的构造方法中将pTaskbar设置为NULL。
初始化隐藏,复制CodeBOOL CMyDlg: OnInitDialog ()
{
。
。
//初始化组件对象模型(COM)
CoInitialize (0);
我们调用下面的函数,因为我们只需要创建一个对象
CoCreateInstance (CLSID_TaskbarList 0
CLSCTX_INPROC_SERVER IID_ITaskbarList (void * *), pTaskbar);
下面的函数将初始化任务栏列表对象
pTaskbar→HrInit(这个);
。
。
。
}
实现
这是你可以用来隐藏任务栏中的“框”的功能。隐藏,复制Codevoid CMyDlg: DeleteTaskbar ()
{
/ /隐藏它
pTaskbar→DeleteTab(这个);
}
尝试pTaskbar的其他方法,你会体验到一些东西。
如果这篇文章没有解释太多的话,请原谅。我的目的只是提供另一种选择。因为这个“方式”还没有发布。
本文转载于:http://www.diyabc.com/frontweb/news10804.html