Bon*_*nev 7 c++ windows taskbar
我有一个小控制台游戏,调用另一个控制台应用程序.像Winamp的许多窗口(主要和播放列表).问题是当我调用两个例如控制台窗口时,任务栏中打开的程序变得太多,我不需要单独打开窗口,我只想让主窗口留在任务栏中,当我点击它时,它及其所有子应用程序都会弹出.
PS我很熟悉ShowWindow ( GetConsoleWindow(), SW_HIDE );,但它也隐藏了窗口,我希望它只能从任务栏中隐藏.
感谢Obvlious船长和一些研究,以下代码:
ITaskbarList *pTaskList = NULL;
HRESULT initRet = CoInitialize(NULL);
HRESULT createRet = CoCreateInstance( CLSID_TaskbarList,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITaskbarList,
(LPVOID*)&pTaskList );
if(createRet == S_OK)
{
pTaskList->DeleteTab(GetConsoleWindow());
pTaskList->Release();
}
CoUninitialize();
Run Code Online (Sandbox Code Playgroud)
包括ShObjIdl.h作品很棒!
注意:您应该在initRet和createRet 中将S_OK作为值!
我知道在控制台窗口上完成此操作的唯一方法是使用shell接口ITaskbarList.
hr = CoCreateInstance(
CLSID_TaskbarList,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITaskbarList,
reinterpret_cast<void**>(&taskbar));
if(!FAILED(hr))
{
// Remove the icon from the task bar
taskbar->DeleteTab(GetConsoleWindow());
// Release it
taskbar->Release();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3806 次 |
| 最近记录: |