1

我正在尝试实现新的 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");

有谁知道可能导致这个问题的原因是什么?

4

2 回答 2

7

好的,看来是我的系统配置有问题。我在这里发布答案,因为不清楚为什么一个进度条动画会起作用,而另一个则不起作用。

在系统属性/性能选项中,我禁用了“任务栏和开始菜单中的动画”。此选项显然禁用了“不确定”动画,但不是常规动画。通过重新启用该选项,不确定的动画将起作用。

于 2012-05-18T02:16:31.227 回答
1

这也发生在我身上。在代码中,我有一个显示表单 B 的表单 A(在 OnLoad 事件中的表单 B 调用 SetProgressState),然后表单 A 调用方法关闭到自身,当它处于不确定模式时它没有显示任何内容!

出乎意料的是,如果我先关闭Form A,然后再显示Form B,问题就解决了!

我希望这可以帮助那些对此感到头疼的人。

于 2013-02-24T00:52:39.073 回答