2012-05-17 33 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(OnLoad事件中的表單B調用SetProgressState),然後表單A調用Close方法,當它處於Indeterminate方式時,它不顯示任何東西!如果我關閉第一個表格A然後顯示錶格B,問題就解決了!

我希望這可以幫助有人與此頭痛。