我正在开发一个Windows应用程序,它需要运行在XP、Vista、7和8上。我正在尝试设置应用程序图标,它可以工作,使用DI_ICON1作为RC文件中的标记:
DI_ICON1 ICON DISCARDABLE "myapp.ico"在这里,使用IDI_ICON1似乎没有做正确的事情。
然而,我也创建了第二个窗口(也是在根级,即不是我的应用程序的主窗口的子窗口),第二个窗口的ALT图标没有正确显示;它只是默认的、通用的应用程序图标。现在,向RC添加第二行使ALT图标工作起来:
IDI_ICON1 ICON DISCARDABLE "myapp.ico"因此,在这两条线上,一切都可以工作。但我不知道为什么,怎么或者这些标识符是什么意思。那么它们是什么,它们在哪里被定义,它们是由什么魔法起作用的?
发布于 2022-01-22 14:50:15
IDI_ICON1只是标识资源的唯一名称。只要它是独一无二的,你就可以给它起任何名字。开发环境应该生成一个Resource.h文件,该文件使用#define预处理指令为其分配一个16位的无符号整数唯一标识符。
请参见:
IDI_ICON1可能只是某个人想出来的约定,IDI的意思是“Icon",而1是因为它是定义的第一个图标。因此,如果您要定义另一个图标,您可以使用IDI_ICON2来标识它。如果要定义位图资源,则可以使用IDB_BITMAP1标识它。
DISCARDEABLE只适用于16位Windows.请参阅:https://learn.microsoft.com/en-us/windows/win32/menurc/common-resource-attributes
https://stackoverflow.com/questions/13053046
复制相似问题