2012-05-17 1 views
1

Я пытаюсь реализовать новую панель прогресса панели задач Windows 7. Мне удалось заставить его работать с состоянием TBPF_NORMAL, используя следующий код:Что может помешать отображению индикатора выполнения TBPF_INDETERMINATE на панели задач?

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"); 

Кто-нибудь знает, что может вызвать эту проблему?

ответ

7

Хорошо, похоже, что это была проблема с конфигурацией моей системы. Я пишу ответ здесь, потому что не очевидно, почему одна анимация в баре прогресса будет работать, но не другая.

В свойствах системы/параметрах производительности у меня была отключена «Анимация на панели задач и меню« Пуск »». Этот параметр, по-видимому, отключает «неопределенную» анимацию, но не обычную. При повторном включении опции работает неопределенная анимация.

1

Это случилось со мной. В коде у меня есть форма A, которая показывает форму B (какая форма B в событии OnLoad вызывает SetProgressState), и после того, как форма A вызывает метод Close для себя, а когда он был в режиме неопределенного, он ничего не показывал !

Удивительно, если я закрываю первую форму A, а затем показываю форму B, проблема решена!

Надеюсь, это поможет кому-то, страдающему от головной боли.

 Смежные вопросы

  • Нет связанных вопросов^_^