我正在尝试实施新的Windows 7任务栏进度条。我设法使用以下代码使用TBPF_NORMAL状态:
CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&taskbarList));
HRESULT c = taskbarList->SetProgressState(hWnd, TBPF_NORMAL);
if (c != S_OK) MessageBox("ERROR");
taskbarList->SetProgressValue(hWnd, 5, 10);
但是,如果我使用TBPF_INDETERMINATE尝试完全相同的代码,它不显示任何内容,也没有错误:
CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&taskbarList));
HRESULT c = taskbarList->SetProgressState(hWnd, TBPF_INDETERMINATE);
if (c != S_OK) MessageBox("ERROR");
有人知道可能导致此问题的原因吗?
答案 0 :(得分:7)
好的,看起来我的系统配置存在问题。我在这里发布答案,因为一个进度条动画可以工作而不是另一个进展条动画并不明显。
在系统属性/性能选项中,我禁用了“任务栏和开始菜单中的动画”。此选项显然禁用“不确定”动画,但不禁用常规动画。通过重新启用该选项,不确定的动画可以正常工作。
答案 1 :(得分:1)
这也发生在我身上。在代码中,我有一个表单A,它显示一个表单B(OnLoad事件中的表单B调用SetProgressState),然后表单A调用方法Close to self,当它处于Indeterminate模式时它没有显示任何东西!
如果我首先关闭表格A然后显示表格B,问题就解决了!
我希望这可以帮助有人头疼的事。