1

新しいWindows7タスクバーのプログレスバーを実装しようとしています。次のコードを使用して、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(OnLoadイベントのフォームBがSetProgressStateを呼び出す)を表示するフォームAがあり、その後、フォームAがメソッドCloseを呼び出しますが、不確定モードの場合は何も表示されませんでした!!

驚いたことに、最初にフォームAを閉じてから、フォームBを表示すると、問題は解決しました。

これが誰かがこれで頭痛を抱えているのを助けることができることを願っています。

于 2013-02-24T00:52:39.073 に答える