【发布时间】:2014-04-22 12:08:17
【问题描述】:
我今天一直在学习 Win32 GUI 编程,但遇到了一个我没有找到答案的问题。
为什么resource.hpp 文件会定义具有如此高ID 号的资源?例如,我正在关注的教程在 resources.rc 中有 2 个资源 - 一个 MENU 和一个 ICON。该菜单共有 3 个 MENUITEM。
这里是教程的 resource.hpp(它定义了这些资源的 int ID):
#define IDR_MYMENU 101 // MENU ID
#define IDI_MYICON 102 // ICON ID
#define ID_FILE_EXIT 40001 // MENUITEM 1 ID
#define ID_STUFF_GO 40002 // MENUITEM 2 ID
#define ID_STUFF_GOSOMEWHEREELSE 40003 // MENUITEM 3 ID
为什么不改用易于理解的 ID,例如:
#define IDR_MYMENU 1 // MENU ID
#define IDI_MYICON 2 // ICON ID
#define ID_FILE_EXIT 3 // MENUITEM 1 ID
#define ID_STUFF_GO 4 // MENUITEM 2 ID
#define ID_STUFF_GOSOMEWHEREELSE 5 // MENUITEM 3 ID
随着更多资源的添加,您只需增加计数即可。我可以理解将 MENUITEMS 与 ICONS 等分开的缓冲区;但是为什么这么大的缓冲区却只有这么少的资源呢?
我也知道这个resource.hpp文件(教程的)是由程序生成的,但问题仍然代表我。
有人能告诉我吗?谢谢。
【问题讨论】:
-
随意。机器不在乎,也不认为40000是一个特殊的数字。它不使用以 10 为底的数字。如果这是由资源编辑器生成的,则提示它不能很好地处理冲突。很少有人这样做。
标签: c++ winapi resource-files