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

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

作者:BlogUpdater |  时间:2022-01-24 |  浏览:297 |  评论已关闭 条评论

你可能注意到这样一个现象:
当在对话框编辑器里添加一个新的控件的时候,通常情况下,控件的ID以100开始,这是为啥?

因为小于100的数已经被使用了,如果你打开资源ID定义文件,就一清二楚了:

对话框管理器它能够自动识别这些特殊的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?》

最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

评论已关闭。