|为什么对话框控件ID定义从100开始?

|为什么对话框控件ID定义从100开始?

文章图片


你可能注意到这样一个现象:
当在对话框编辑器里添加一个新的控件的时候 , 通常情况下 , 控件的ID以100开始 , 这是为啥?
因为小于100的数已经被使用了 , 如果你打开资源ID定义文件 , 就一清二楚了:

【|为什么对话框控件ID定义从100开始?】对话框管理器它能够自动识别这些特殊的ID值 。 如果你的对话框上 , 某个控件和这些特殊ID值相同 , 则这个控件将会自动带上这些特殊控件的行为 。
具体来说 , 假设一个控件的ID是IDOK , 则对话框管理器会假设这个按钮是一个OK按钮 。 如果用户点击回车按键 , 则对话框上的默认按钮就会被按下 。 如果对话框上没有默认按钮 , 则OK按钮会被按下 。 类似的 , 如果一个控件的ID是IDCANCEL , 则对话框管理器会认为它是一个Cancel按钮 。 如果用户点击ESC或者角落上的关闭按钮 , 则这个Cancel按钮会被按下 。
如果你的对话框有OK和Cancel按钮 , 请确保它们的ID被分别设置为IDOK和IDCANCEL , 这样它们就可以和系统默认的按钮行为一致了 。 反过来说 , 如果一个控件的ID是IDOK或者IDCANCEL , 则请确保这个控件在设计上是一个OK或者Cancel按钮 。 否则 , 用户使用的时候 , 会感到疑惑 , 甚至会说不好的话 , 例如:这Template Module啥玩意儿?
总结猿友在专注代码的时候 , 一定要时不时将自己假想成用户 , 感受一下用户使用你的软件时的感受 。
如果你觉得这东西使用还挺流畅 , 心情愉悦 , 则代表你开发的东西还不赖 。
如果你觉得如鲠在喉 , 甚至想要骂娘 , 则此时你应当心里有数:你在开发一个神马东西 。
最后Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一 , 里面有很多关于Windows的小知识 , 对于广大Windows平台开发者来说 , 确实十分有帮助 。
本文来自:《Why do dialog editors start assigning control IDs with 100?》