4

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

DI_ICON1 ICON DISCARDABLE "myapp.ico"

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

但是,我还创建了第二个窗口(也在根级别,即不是我的应用程序主窗口的子窗口),并且该第二个窗口的 ALT-TAB 图标没有正确显示;它只是默认的通用应用程序图标。现在向 RC添加第二行可以使 ALT-TAB 图标起作用:

IDI_ICON1 ICON DISCARDABLE "myapp.ico"

因此,两条线都可以正常工作。但我不知道这些标识符为什么或如何或 wtf 甚至意味着什么。那么它们是什么,它们是在哪里定义的,它们是通过什么魔法起作用的呢?

4

1 回答 1

0

IDI_ICON1只是标识资源的唯一名称。你可以给它起任何名字,只要它是唯一的。开发环境应生成一个Resource.h文件,该文件使用#define预处理器指令为其分配一个 16 位无符号整数唯一标识符。

看:

IDI_ICON1可能只是某人想出的一个约定,其中的IDI意思是“ID Icon”,而 1 是因为它是第一个定义的图标。所以,如果你定义另一个图标,你会用IDI_ICON2. 如果您要定义位图资源,您可以用IDB_BITMAP1.

DISCARDEABLE仅适用于 16 位 Windows。请参阅:https ://docs.microsoft.com/en-us/windows/win32/menurc/common-resource-attributes

于 2022-01-22T14:50:15.343 回答