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

 

存在分配相同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分配机制一致。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值