我支持基于WinAPI / ATL的应用程序,其中包含许多根据用户操作创建的对话框窗口。大多数对话框是无主窗口。如果同时创建多个对话框,则它们的任务栏按钮将在任务栏上组合在一起(默认行为)。
现在,我有一个任务为一个对话框窗口创建一个单独的任务栏按钮。我找不到有关如何执行此操作的任何相关信息。我什至尝试使用ITaskbarList
COM接口,但是它的AddTab()
方法像上面的默认模型一样工作。
是否可以在一个应用程序实例的任务栏上放置多个按钮?如果是,请说明如何实施。
在Windows 7和更高版本上,您可以为对话框分配不同的“应用程序用户模型ID”,并且不会与任务栏上的其他对话框分组。
请参阅Raymond Chen关于此主题的博客文章:
另请参阅:
例如:
int WINAPI wWinMain(HINSTANCE hinst, HINSTANCE hinstPrev,
LPWSTR lpCmdLine, int nShowCmd)
{
SetCurrentProcessExplicitAppUserModelID(L"MyCompany.MyApp.MainProcess");
...
HWND hDlg = ...
IPropertyStore *pps = NULL;
if (SUCCEEDED(SHGetPropertyStoreForWindow(hDlg, IID_PPV_ARGS(&pps))))
{
PROPVARIANT pv;
PropVariantInit(&pv);
InitPropVariantFromString(L"MyCompany.MyApp.LoneDialog", &pv);
pps->SetValue(PKEY_AppUserModel_ID, pv);
PropVariantClear(&pv);
pps->Release();
}
...
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句