【问题标题】:Add icon resource without changing the EXE icon?添加图标资源而不更改EXE图标?
【发布时间】:2011-10-16 19:13:22
【问题描述】:

我在我的程序中添加了一个图标资源。不幸的是,它是一个 16x16 图标,旨在作为按钮上的视觉辅助,现在它被设置为可执行文件的主图标。显然,这看起来很糟糕。

是否可以在将 EXE 的图标保留为 Windows 默认值的同时添加资源?

我正在使用 Visual Studio 2010,如果有帮助的话。

【问题讨论】:

    标签: c++ visual-studio winapi resources icons


    【解决方案1】:

    看起来您的 16x16 图标是您的应用程序中唯一的图标资源,或者是具有最小标识符的图标资源。在这种情况下,资源管理器(对于它的文件列表)和窗口管理器(对于窗口的标题栏)都将默认使用该图标。

    您应该向您的应用程序添加另一个图标,其 id 小于 16x16 图标的 id,因此它将成为默认图标。如果你想使用默认的应用程序图标,你可以从Visual Studio Image Library获取它。

    【讨论】:

    • 实际上,3/4 解决了。你知道我在哪里可以获得 Visual Studio Image Library,或者我在哪里可以获得默认的应用程序图标?显然 VS 的 Express 版本不包含图像。
    • @Jonathan,还有另一种方法:您可以使用 Visual Studio 在资源模式下打开 %SystemRoot%\System32\user32.dll 并提取默认应用程序图标。它应该有 id 100
    【解决方案2】:

    您可以手动完成。您可以在resource.h、rc文件中添加一个标识符,然后通过调用带有参数MAKEINTRESOURCE(IDENTFIER)的所需函数来使用它来进行从id到image的转换。

    【讨论】:

      【解决方案3】:

      一种选择是将您的图标放在一个单独的模块中,即一个 DLL。这将阻止系统将它们用于应用程序图标,并避免添加您自己的默认系统应用程序图标副本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多