【发布时间】:2011-10-16 19:13:22
【问题描述】:
我在我的程序中添加了一个图标资源。不幸的是,它是一个 16x16 图标,旨在作为按钮上的视觉辅助,现在它被设置为可执行文件的主图标。显然,这看起来很糟糕。
是否可以在将 EXE 的图标保留为 Windows 默认值的同时添加资源?
我正在使用 Visual Studio 2010,如果有帮助的话。
【问题讨论】:
标签: c++ visual-studio winapi resources icons
我在我的程序中添加了一个图标资源。不幸的是,它是一个 16x16 图标,旨在作为按钮上的视觉辅助,现在它被设置为可执行文件的主图标。显然,这看起来很糟糕。
是否可以在将 EXE 的图标保留为 Windows 默认值的同时添加资源?
我正在使用 Visual Studio 2010,如果有帮助的话。
【问题讨论】:
标签: c++ visual-studio winapi resources icons
看起来您的 16x16 图标是您的应用程序中唯一的图标资源,或者是具有最小标识符的图标资源。在这种情况下,资源管理器(对于它的文件列表)和窗口管理器(对于窗口的标题栏)都将默认使用该图标。
您应该向您的应用程序添加另一个图标,其 id 小于 16x16 图标的 id,因此它将成为默认图标。如果你想使用默认的应用程序图标,你可以从Visual Studio Image Library获取它。
【讨论】:
%SystemRoot%\System32\user32.dll 并提取默认应用程序图标。它应该有 id 100。
您可以手动完成。您可以在resource.h、rc文件中添加一个标识符,然后通过调用带有参数MAKEINTRESOURCE(IDENTFIER)的所需函数来使用它来进行从id到image的转换。
【讨论】:
一种选择是将您的图标放在一个单独的模块中,即一个 DLL。这将阻止系统将它们用于应用程序图标,并避免添加您自己的默认系统应用程序图标副本。
【讨论】: