首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DI_ICON1和IDI_ICON1有什么区别?

DI_ICON1和IDI_ICON1有什么区别?
EN

Stack Overflow用户
提问于 2012-10-24 16:02:08
回答 1查看 2.1K关注 0票数 4

我正在开发一个Windows应用程序,它需要运行在XP、Vista、7和8上。我正在尝试设置应用程序图标,它可以工作,使用DI_ICON1作为RC文件中的标记:

代码语言:javascript
复制
DI_ICON1 ICON DISCARDABLE "myapp.ico"

在这里,使用IDI_ICON1似乎没有做正确的事情。

然而,我也创建了第二个窗口(也是在根级,即不是我的应用程序的主窗口的子窗口),第二个窗口的ALT图标没有正确显示;它只是默认的、通用的应用程序图标。现在,向RC添加第二行使ALT图标工作起来:

代码语言:javascript
复制
IDI_ICON1 ICON DISCARDABLE "myapp.ico"

因此,在这两条线上,一切都可以工作。但我不知道为什么,怎么或者这些标识符是什么意思。那么它们是什么,它们在哪里被定义,它们是由什么魔法起作用的?

EN

回答 1

Stack Overflow用户

发布于 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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13053046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档