mfc是c++的一个框架,可谓是经久不衰。最近博主遇到一个问题,就是单选按钮点击自己可以设置可选和不可选,貌似类似复选框一样,但领导分发的任务上要求的是用单选按钮实现复选框这种类似功能,实现效果类似如下图:


其中第一行按钮为1组,第二行按钮为1组

问题解决方案

对于每个按钮设置一个flag变量,用数组放进去,如下面代码

bool m_flag[5];for(int i = 1;i<5;i++)m_flag[i] = false;

单选按钮里单击事件只需要这样写就行了

void Cnormal3Dlg::OnBnClickedRadio1(){// TODO: 在此添加控件通知处理程序代码(CBUtton*)GetDlgITem()IDC_RADIO1->SetCheck(!m_Flag[1]); //m_flag[1] = !m_flag[1];}

总结

如果在mfc中设置单选按钮点击自身可以实现可选与不可选,那么只需要设置一个flag数组变量,每次单击触发时,将其反制一下就行了。