Windows 7任务栏进度适用于一个应用程序,但不适用于另一个

Jos*_*ley 10 windows taskbar windows-7 progress-bar

我有两个不同的应用程序,包括用C++ Builder 2009编写的本机应用程序,两个MDI,都使用相同的进度条实用程序代码.其中一个正确更新了Windows 7任务栏及其进度.另一个没有.

我发现两个应用程序之间没有任何明显的差异.失败的应用程序中没有报告错误:调用ITaskbarList3::SetProgressValueITaskbarList3::SetProgressState返回S_OK,但Windows 7任务栏中没有任何反应.

让Windows 7任务栏进度条工作有什么陷阱吗?我可能缺少哪些要求?

Jos*_*ley 1

我的问题可能是 Delphi/C++Builder 特有的,并且是 VCL 处理其顶级窗口的方式不同造成的。

如果Application.MainFormOnTaskBar为 true,则仅当用作 HWND 参数ITaskbarList3时才有效。Application.MainFormHandle

如果Application.MainFormOnTaskBar为 false,则仅当用作 HWND 参数ITaskbarList3时才有效。Application.Handle

就我而言,一个项目为MainFormOnTaskBar真,一个项目为假。