存在分配相同ID的可能。详情见下: ID的分配是通过头文件控制的。 你看你的resource.h的最后几行(注释是我加的,源文件里没有): #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 2000 // 下一个资源的ID,比如字符串资源,位图资源等 #define _APS_NEXT_COMMAND_VALUE 40001 // 下一个command的ID,这个一般是作为WM_COMMAND消息的参数用的。 #define _APS_NEXT_CONTROL_VALUE 1001 // 下一个控件的ID #define _APS_NEXT_SYMED_VALUE 101 // 下一个符号的ID #endif 比如,如果这个时候你用VC的对话框插入一个字符串,那么这个字符串的ID就会自动被分配成2000,同时_APS_NEXT_RESOURCE_VALUE会被改成2001。其他几个值也是以类似方式工作的。 所以其实VC自动分配的ID号,跟你自己定义的是有可能重复的。你必须自己保证没有重复,而不是依赖于VC帮你检查。一个办法是,比如你要新加一个控件,你可以用_APS_NEXT_CONTROL_VALUE的值作为这个控件的ID,然后自己手动把_APS_NEXT_CONTROL_VALUE的值加1,这样就能保持跟VC的ID分配机制一致。
resource.h中的值是如何分配的
最新推荐文章于 2021-10-27 16:10:33 发布