1

我在 Visual C++ 2010 Express 中有一个简单的 C++/CLI Windows 窗体应用程序。我决定在那里替换EXE文件图标。

我从项目中删除了原来的 app.ico,将另一个 ico 文件(128*128 以防万一)放到项目目录中。

然后我打开 app.rc 文件并在那里替换图标名称:从 app.ico 到 Vocabulary2.ico(这是 ico 文件名)

这是我更改的 app.rc 文件中的代码:

/////////////////////////////////////////////////////////////////////////////
//
// Icon
//
// Icon placed first or with lowest ID value becomes application icon
LANGUAGE 25, 1
1           ICON         "Vocabulary2.ico"  //changed the value in quotes

然后我清理并重建了解决方案,应用程序的图标出现以下问题:当 Windows 资源管理器处于 Content\Details\List\Small Icons 模式时,会显示正确的图标。但是,如果我切换到任何其他模式(中、(额外)大图标、平铺) - 我会看到默认的应用程序图标。

这不是一些 Windows 资源管理器缓存 - 我已将文件复制到另一台装有 Windows 7 的计算机上,但遇到了同样的问题。

如何为所有视图设置正确的图标?

这是我使用的图标的链接:http: //findicons.com/icon/download/94320/applications_office/128/ico?id=275134

这是问题的屏幕截图: 屏幕截图 - 用于图块和内容视图的不同图标

4

1 回答 1

1

一个Windows ICO 文件可以包含多个不同大小和颜色格式的图标。您需要在此处利用该功能。Windows 在用户界面的不同位置使用这些不同的图标,具体取决于所需的大小和机器支持的颜色格式。如果未找到完全匹配,它会尝试缩放现有图标之一以适应,但这通常会产生丑陋的结果(或者可能根本不会尝试,如您的情况)。

现在,您的 ICO 文件中只有一个图标:使用 32 位颜色的 128x128 像素图标。这不足以满足所有基本所需的尺寸。事实上,我认为 Windows 甚至不会在任何地方使用 128 像素图标。您需要的基本尺寸是 16、32、48 和 256 像素。您可以选择包含一个 24x24 像素的图标,我相信它用于“内容”视图和某些开始菜单布局。所以,总结一下:

  • 16x16 像素(例如“小图标”和“详细信息”视图)
  • [可选] 24x24 像素(例如“内容”视图)
  • 32x32 像素(例如“Medium Icons”视图)
  • 48x48 像素(例如“平铺”视图)
  • 256x256 像素(例如“超大图标”视图)

如果您想支持可能不支持 32 位颜色图标的旧机器,您还需要以较低颜色格式包含上述所有尺寸的图标。您可以包含所有颜色格式,但我发现只需拥有一组所有所需尺寸的 32 位和 8 位颜色图标就足够了。

您将需要一个好的图标创建器来为您处理此问题,因为 Microsoft Paint 不支持创建包含多个图标的 ICO 文件。我曾经推荐IcoFX,但它不再免费。你可以在网上的各个地方下载旧版本(1.6.4),但我会让你自己用谷歌搜索。如果您已经拥有其中之一,Photoshop 和 GIMP 都支持创建 ICO 文件。网上还有很多其他选择;例如这个(虽然我没有尝试过)。

完整版的 Visual Studio 确实带有图标编辑器,但我不会使用它。它仍然不(至少从 VS 2010 开始)正确支持 32 位彩色图标。阿尔法通道都搞砸了。

你可以让你的图标编辑器放大/缩小你的图标以创建所有需要的尺寸,或者你可以用它来手绘其他尺寸。手绘(或至少是手工操作)通常会产生更好的结果。缩小大图标通常会使其无法识别。放大较小的图标通常会产生锯齿和其他丑陋的视觉伪影。

由于您使用的是其他人绘制的图标,因此您可以从原始链接下载其他尺寸(单击“其他尺寸”选项卡)。我相信 FindIcons 网站的设计方式,您必须将每种尺寸单独下载为单独的 ICO 文件,然后使用您的图标编辑器将每个尺寸复制并粘贴到新的 ICO 文件中。

进一步阅读:

  • 图标,来自 Windows Aero UI 指南
  • 创建 Windows XP 图标(一篇较旧的文章,可能不再完全相关,但仍包含一些重要信息)
于 2013-05-26T07:49:19.820 回答