求教win32原生单选按钮互斥的原理

Win32的BS_RADIOBUTTON并没有实现这个功能,请你自己写代码互斥。还有,按Tab来移动焦点的这件事情,也是你自己做的。依稀记得在实习的时候,每天晚上就躲在公司给的宾馆里面封装Win32的GUI,发现了很多毁三观的事情。年轻真是好啊,一点点东西做出来了也那么开心。
■网友
确认 resource.h 中,你想要分组的 Radio Buttons 有着连续的 ID 分布。在每个 Radio Button 的 WM_COMMAND handler 中调用 CheckRadioButton API。
■网友
【求教win32原生单选按钮互斥的原理】 问题是我提的,我想我知道答案了,正如@vczh所说(破乎是取消艾特功能了吗),系统并没有包办单选按钮的互斥,而是由开发者自己实现互斥~有点毁三观。原生单选按钮我没用过,我用的是.net winform,侧证就是在RadioButton的源码中有互斥的代码,而RB就是对原生单选按钮的封装,也怪我没有仔细看源码就上来问。源码在此:
https://referencesource.microsoft.com/#System.Windows.Forms/winforms/Managed/System/WinForms/RadioButton.cs,465
但是另一个问题来了,就是取消其它RB的选中状态为什么不直接写成button.Checked=false,而是要通过反射的方式进行,相信不是蛋疼,求讲解。


    推荐阅读