本人在对话框中设置了两个group的单选按钮,
一个为IDC_Sex下的IDC_Male和IDC_Female。
一个为IDC_Animal下的IDC_Dog和 IDC_CAt。
做一个简单测试
    void CBirthDlg::OnMale() 
{
if(IsDlgButtonChecked(IDC_Male))
{
m_Sex=1;
      //  UpdateWindow();
}
}
void CBirthDlg::OnFemale() 
{
if(IsDlgButtonChecked(IDC_Female))
{
 m_Sex=0;
     //UpdateWindow();
         }
}
然后单击测试按钮,在编辑框(m_Sex)内显示0或1;
显示是不成问题,但是假如选的是“male”,单选按钮上的黑点在单击“测试”按钮后会从“male”移到“female”。反之亦然。
请问怎么才能在按了测试以后让单选按钮上的黑点保留在原来所选项上或者消失?

解决方案 »

  1.   

    IsDlgButtonChecked这个判断好像是多余的把!!进这个消息响应的前提应该是该button被check了!
      

  2.   

    因为你的默认值(按钮)是“female",所以刷新对话框数据的时候,成了默认值。
      

  3.   

    to  feiniaoliang(飞鸟良) (
    你说的对,我去掉那句话一样可以运行。
    但是怎么解决我的问题?谢谢啊。
    to  allenhai1980(学术人生) :
    可是“反之亦然”。
    就是当我选“female”时,按测试后,黑点又到了“male”上。
      

  4.   

    可以用CheckDlgButton(IDC_Female,BST_UNCHECKED);设置是否选择。BST_CHECKED表示选择。
      

  5.   

    感觉可能与你group的设定有关系!
      

  6.   

    我只是设定每个group中的第一个选项的属性为group啊,不对吗?