我太菜了!出了问题后,百思不得其解,只有说“奇怪”二字。
大概是酱紫的:
SDI界面;
主界面CFormView;
CFormView上有一组CRiado Button,初始时都没有SetCheck;
点击其上任意一Button,弹出一相应的对话框,如果该对话框IDOK,该button就SetCheck,同时清空其它button的SetCheck,如果该对话框IDCANCEL,就恢复其它button的SetCheck(界面行为就像没点击该Button一样);
问题出现在这里:初始时都没有SetCheck,这时点击其上任意一Button,并对弹出的对话框IDCANCEL,这时这组CRiado Button都没有点上小黑点,现在最小化程序窗口,再最大化之,刚才弹出的对话框自动弹出,而且点IDOK或IDCANCEL之后,该对话框不停的出现!不知为何?但是修改程序,使得这组CRiado Button,总能保持有一个被SetCheck,就不出现上叙问题,点解?

解决方案 »

  1.   

    描述清楚需求,将源代码发到[email protected],马上解决。
      

  2.   

    说得简单些,就是使用正确的方法(没有不良反应的方法),使得单击Riado Button后该Riado Button前面没有小黑点标记。
    我的方法:
    void CPCSDView::OnBnClickedSectionRt()
    {
          ........
          if(mBOOL)
          ((CButton *)GetDlgItem(ID_SECTION_RT))->SetCheck(FALSE);
    }
    是有问题的!
      

  3.   

    SetCheck产生了按钮点击的消息,最好不要这么干
      

  4.   

    BN_CLICK实际上相当于这么个动作
    SendMessage(hWndDlg, WM_COMMAND, ID_xxx, (LPARAM)hWndRadio);
    而SetCheck刚好也会产生同样的消息,所以就会出现你说的现象
      

  5.   

    goodboyws(深夜不眠者):
    请问有什么替代方案可以满足我的要求.