我的界面上其实挺多空间,一个Radio涉及到很多控件状态。这里举个简单的例子RadioA被选中的时候EditA有效,其他无效.RadioB取消选中
RadioA也可以根据变量a来置为有效无效响应函数OnA()里面应该怎么写比较合理?
OnA()
{
    UpdateA(Get);
}UpdateA(bool bCheck)
{
   if(bCheck)
   {
      EditA有效,RadioB取消选中
   }
   else
   {
      EditA无效,RadioB选中
   }
}
在手工设置的时候因为Radio是互斥的,所以不需要用程序去设置RadioB的选中状态,
但是如果根据变量a来设置RadioA的话,RadioB不会自动取消被选中状态。这样程序好像多余了。虽然只多余了一点,但是我界面上的控件还是挺多的。不知道大家有没有好的解决方法?
应该不需要分开写两个函数吧?这样写起来也太多了。

解决方案 »

  1.   

    大概看了一下,不是很明白最后你想如何处理如果很多Radio有相似的处理,可以写一个函数处理这个问题。如果界面上控件很多,一个Raido影响几乎全部的状态,也可以用枚举界面上所有的控件,然后按条件enable或者disable。好像有一个EnumChildWindows可以吧
      

  2.   

    RadioA
    RadioB我们选中RadioA的时候RadioB自然取消选中,选中RadioB的时候RadioA自然取消选中,不需要我们写代码然他们互斥。
    但是如果RadioA是通过变量a更新状态的,那么RadioB的取消选择需要我们用代码去做。
    那么取消RadioB的选择的代码写在了RadioA的响应函数里,是不是多余了。
      

  3.   

    RadioA和RadioB在一个group里,所以他们是互斥的,如果RadioB的选择的代码写在了RadioA的响应函数里,可以认为是多余的,只要更新了RadioB的状态,RadioA理论上也应该自动会变的