4

我想知道在我编译我的应用程序时是否有办法更改 VS2012 制作的默认图标。只是对于那些想知道的人,我正在尝试更改 .exe 程序的图标,而不是窗口左上角和开始菜单上的窗口图标。我已经知道该怎么做。我一直在用谷歌搜索它,它总是显示如何更改窗口图标,而不是实际文件的图标。提前致谢!!!

编辑:这就是我想要做的......

我想换这个...

在此处输入图像描述

有了这个...

在此处输入图像描述]

谢谢,希望这可以澄清。

4

4 回答 4

5

将图标添加到可执行文件

已针对 VS2012 Express 测试

icon.rc file在您的文件旁边创建一个.vcxproj并用以下文本填充它:

// Icon Resource Definition
#define MAIN_ICON                       102
MAIN_ICON               ICON                    "your_icon.ico"

然后将以下内容添加到标签.vcxproj内的任意位置:Project

<ItemGroup>
    <ResourceCompile Include="icon.rc">
    </ResourceCompile>
</ItemGroup>

附加选项

如果您愿意,您可以将定义转发到您的icon.rc文件,如下所示:

<ItemGroup>
    <ResourceCompile Include="icon.rc">
        <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/D_DEBUG %(AdditionalOptions)</AdditionalOptions>
    </ResourceCompile>
</ItemGroup>

注意/D_DEBUG定义,它_DEBUG为您的资源文件定义。然后在您的icon.rc文件中正常检查定义:

#define MAIN_ICON 102
#if defined(_DEBUG)
MAIN_ICON               ICON                    "debug_icon.ico"
#else
MAIN_ICON               ICON                    "release_icon.ico"
#endif
于 2015-04-07T14:07:21.443 回答
2
  1. 在 C++ 项目的资源部分添加一个图标。此图标将显示为可执行文件的应用程序图标。[注意:确保您在资源视图窗口中,而不是在解决方案资源管理器窗口中。然后右键单击rc文件夹添加资源...]

  2. 我已经使用 Win32 控制台应用程序进行了尝试,它在资源管理器中将图标显示为应用程序图标。这也适用于其他类型的应用程序。

  3. 另请注意,在添加图标时,您需要为图标添加不同尺寸的图像,例如 16*16、32*32。Windows 资源管理器将使用这些不同的图标图像以不同的视图模式显示应用程序图标(小图标、中图标、大图标、超大图标等)

于 2013-04-16T07:08:09.160 回答
1

这不是它的工作原理。Windows显示的程序图标的大小不是由您决定的,用户选择它。这是用户偏好,只需在桌面上滚动鼠标滚动按钮即可在更高版本的 Windows 上轻松更改。并且一个图标不只有一个大小,它能够存储多个图像。Windows 会选择最适合的那个。而你在开始一个新项目时得到的只是一个存储在项目模板中的库存。您可以通过修改项目模板 .zip 文件来更改它,但这有点没有意义,您想为您的程序提供一个自定义图标来个性化它。

最好的办法是偷、乞或借,做一个好看的偶像是一门艺术。有很多网站可以免费下载。如果您想尝试创建自己的内容,那么这也是受支持的。只需双击项目的 .rc 文件即可打开资源视图,打开 Icon 节点并双击默认图标即可打开图标编辑器。您使用 Image + New Image Type 添加新尺寸。还提供大量免费软件图标编辑器。

于 2013-04-16T12:16:46.887 回答
0

如果它是一个 Win32 应用程序,那么您可以将资源添加到您的项目中,然后将图标放在那里。然后,您可以通过发送 WM_SETICON 方法将图标分配给您的应用程序。对于 MFC 应用程序,资源已经存在,并且您可以更改指定的图标资源。

您也可以按照此处的建议直接从外部文件加载它:

使用 WIN32 API 设置没有资源的程序图标

我会推荐资源路线。资源嵌入到您的可执行文件中,这是在 Win32 和 MFC 中执行此类操作的推荐方法。

于 2014-09-19T14:08:51.597 回答