您的位置:首页 > 编程语言 > C语言/C++

VC++中ID是如何分配的,如果自己定义一个ID号,系统还会不会再分配与此相同的ID

2014-12-10 09:39 495 查看
 

存在分配相同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分配机制一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐