2010-04-26 53 views
3

我有一个带有嵌入图标的普通MFC应用程序。如果我启动应用程序,图标显示在windows-7任务栏内。 但是,当我更改资源内的图标时,重新生成应用程序并启动它,任务栏不显示当前图标,而是显示第一次运行的图标。Windows-7中应用程序图标的更新任务栏

应用程序内部没有特别的代码来完成windows-7任务栏的特定操作。

有没有办法,(在C++中)告诉windows-7任务栏显示当前图标?

+0

更改VERSIONINFO中的版本号码并没有帮助。更改名称确实存在,但不是解决方案。 – 2010-04-26 14:40:55

回答

1

您是否empty/deleteicon cache

+0

Windows-7似乎有另一个地方的图标缓存;我会很高兴,如果其他人不需要杀死浏览器,看到新的图标。 – 2010-04-26 14:34:30

+0

这是一个隐藏文件,在资源管理器中打开显示隐藏/系统文件。 如果图标缓存是问题,它只会影响您的机器。 (假设更改资源不是程序正常操作的一部分) – Anders 2010-04-26 15:07:48

0

做你remove从资源之前的图标....并把在资源分配后的新图标file..too ...可能会工作....

+0

我已经编辑过.ico文件 - 并重建;可执行文件中只有1个图标;但即使多次添加图标也不会改变这种情况。 – 2010-04-26 14:30:52

1

我相信,如果你重建了一个应用程序,但它仍然被调用相同的名称,那么资源管理器不认为它应该重新加载图标,即使新图标是应用程序中唯一的图标。

如果您要发布该程序,则没有人会遇到此问题,因为该应用的第一个版本会有新图标,但出于您自己的目的,您可以从shell32.dll中调用SHChangeNotify();来刷新自己的图标的视图。

相关问题