MFC - 替换默认应用程序图标

Posted

技术标签:

【中文标题】MFC - 替换默认应用程序图标【英文标题】:MFC - Replacing default application icon 【发布时间】:2010-11-11 01:50:51 【问题描述】:

我有一个 MFC 对话应用程序。我想替换应用程序 exe 图标。

    我打开默认的 MFC 图标,例如。使用 Axialis IconWorkshop 在 res 文件夹中的 app.ico。 替换图标中的所有图片。 将其保存到 appA.ico。 然后我将图标 IDR_MAINFRAME 的 Filename 属性更改为 res\appA.ico。 Visual Studio 图标编辑器显示正确的图像。

但是当我构建应用程序时,与 app.exe 关联的图标仍然显示 MFC 默认图标。

出了什么问题?

【问题讨论】:

尝试重建项目(Build > Rebuild Project)。有时无法正确识别新资源。 【参考方案1】:

在这些情况下,Visual Studio 设计器有一点问题(或者,设计使然但难以理解)。最好编辑 .rc 代码文件并在那里更改图标文件名。

【讨论】:

是的,我改了。现在它出现了,但在 Windows 7 上发生了一些非常奇怪的事情。小图标和中图标显示正确,但大图标和超大图标显示 MFC 默认图标。 我也遇到了同样的问题。我的情况是列表和小图标无法正确显示。是因为图标文件本身吗?你最后是怎么解决问题的?谢谢。【参考方案2】:

我想我记得它是 .RC 文件中使用的第一个图标,无论您做什么,因此您可能必须直接编辑 .RC 文件,就像 djeidot 说的那样。

【讨论】:

我不知道为什么 MFC 是这样设计的,因为它真的很愚蠢,但它是我的答案。尽管如此,我还必须更改 Ressource.h,因此我的 ICON 的 ID 也将是列表中出现的第一个 ICON ID。【参考方案3】:

有时,Windows 会缓存图标。您的应用程序可能没有问题。尝试下载类似Resource Hacker 的内容

并查看您的 exe 文件。如果图标看起来正确,那么您的 appdata\Local 文件夹中有 IconCache.db 或类似文件(取决于 Windows 版本)。删除它并重新加载资源管理器。

【讨论】:

【参考方案4】:

其中一个 Visual Studio 文件缓存了一些资源;不幸的是,我现在不记得是哪一个了。将这些带有奇怪扩展名的文件重命名为其他文件并尝试重建。

【讨论】:

【参考方案5】:

我有同样的问题并通过这个解决方案解决它:

    构建\清洁解决方案 将 appA.ico 再次复制到 res 文件夹中 重建项目

【讨论】:

【参考方案6】:

我有同样的问题并通过以下方式解决: 1.清除溶液 2.打开任务管理器并转到详细信息选项卡。 3.搜索 explorer.exe 并右键单击它并结束任务。 4.转到文件->运行新任务,输入explorer.exe 5.现在构建解决方案并检查应用程序图标。

【讨论】:

以上是关于MFC - 替换默认应用程序图标的主要内容,如果未能解决你的问题,请参考以下文章

单文档的MFC程序,怎样为工具栏按钮添加图标

将磁贴添加到 MFC 应用程序

MFC技巧三:VC6 单文档 替换MFC默认的菜单栏和工具栏(转)

Java:替换窗口左上角的咖啡杯图标

MFC更换窗口图标

MFC CComboBoxEx 图标更新问题