C++ Builder 2009で作成されたネイティブアプリケーションとMDIの両方、および同じプログレスバーユーティリティーコードを使用する2つのアプリケーションがあります。そのうちの1人は、Windows 7のタスクバーの進行状況を適切に更新します。もう一つはそうしない。Windows 7のタスクバーの進捗状況は1つのアプリケーションでは機能しますが、別のアプリケーションでは機能しません。
2つのアプリケーションの間に明らかな違いはありません。エラーが発生したアプリケーションでは、ITaskbarList3::SetProgressValue
とITaskbarList3::SetProgressState
の呼び出しはS_OK
に戻りますが、Windows 7のタスクバーでは何も起こりません。
Windows 7のタスクバーのプログレスバーが機能するのに問題がありますか?私が欠けている可能性のある要件はありますか?
同じマシンで実行していますか?あなたはそれを言及していない。そうでない場合は、1台のマシンがタスクバーと小さなアイコンを使用しますか?大きなアイコンのオーバーレイ(進行状況バーを含む)だけを取得します。 –
@Kate:はい、それらは同じマシン上で実行されており、どちらも大きなタスクバーアイコンを使用しています。 –
このユーティリティコードは、両方のアプリケーションの同じ部分に配置されていますか、それともわずかな違いがありますか?両方のアプリケーションがMDIであると述べたので、進捗状況を更新するためのウィンドウメッセージが両方の場合に必要なパスをトレースしてみてください。私は、意図したとおりに動作しないアプリケーションの場合、進行状況更新メッセージがメイン(アプリケーション)メッセージループに到達していないと推測しています。しかし、私はこの機能について実際に経験がないので、これは単なる推測です。 – LightBulb