//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; } }