//Icon:IDI_BLUE IDI_GREEN IDI_RED
//PNG: IDB_PREVIEW IDB_THUMB
ITaskbarList4 *g_pTaskbar;
HICON g_hRed, g_hGreen, g_hBlue;
HWND g_hWnd;
//加载图标资源
g_hRed = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_RED));
g_hGreen = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_GREEN));
g_hBlue = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_BLUE));
::CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&g_pTaskbar));
g_pTaskbar->HrInit();
g_pTaskbar->SetProgressState(g_hWnd, TBPF_ERROR);
g_pTaskbar->SetProgressValue(g_hWnd, 50, 100);
g_pTaskbar->SetOverlayIcon(g_hWnd, g_hRed, TEXT("Error"));
g_pTaskbar->SetThumbnailTooltip(g_hWnd, TEXT("Some information"));
AddThumbnailButtons();
/
void CtaskBarTryDlg::OnBnClickedBtnCreate()
{
// TODO: 在此添加控件通知处理程序代码
//加载图标资源
g_hRed = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_RED));
g_hGreen = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_GREEN));
g_hBlue = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_BLUE));
g_hWnd=this->GetSafeHwnd();
::CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&g_pTaskbar));
g_pTaskbar->HrInit();
g_pTaskbar->SetProgressState(g_hWnd, TBPF_ERROR);
g_pTaskbar->SetProgressValue(g_hWnd, 50, 100);
g_pTaskbar->SetOverlayIcon(g_hWnd, g_hRed, TEXT("Error"));
g_pTaskbar->SetThumbnailTooltip(g_hWnd, TEXT("Some information"));
//AddThumbnailButtons();
}
void CtaskBarTryDlg::OnBnClickedIncProgress()
{
// TODO: 在此添加控件通知处理程序代码
static int i=0;
g_pTaskbar->SetProgressValue(g_hWnd,i++, 100);
if (i==100)
i=0;
}
void CtaskBarTryDlg::OnBnClickedOverIcon()
{
// TODO: 在此添加控件通知处理程序代码
static int i=0;
int j=i++ % 3;
switch(j)
{
case 0:
g_pTaskbar->SetOverlayIcon(g_hWnd, g_hRed, TEXT("ErrorRed"));
break;
case 1:
g_pTaskbar->SetOverlayIcon(g_hWnd, g_hGreen, TEXT("ErrorGreen"));
break;
case 2:
g_pTaskbar->SetOverlayIcon(g_hWnd, g_hBlue, TEXT("ErrorBlue"));
break;
}
}