我的对话框中有三个radio button,还有一个普通的button,我把把三个radio button都设置为push-like的风格,其他的没有做任何设置,现在运行时,按下第二个按钮时,第一个弹出,但是我想解决两个问题:
1、我怎么知道哪个radio button按钮被按下了?
2、我想按下那个普通button时候,所有的radio button都能够弹出显示

解决方案 »

  1.   

    SendDlgItemMessage(id, BM_GETCHECK, ...);
    SendDlgItemMessage(id, BM_SETCHECK, ...);
      

  2.   

    1。给这组radio button关联一个int变量,比如m_select,这个变量是0,表示第一个被按下,1是第二个,2是第三个,
    根据ID的顺序来的,如果你是通过其它方法改变了按钮状态,读这个m_select之前,先UpdateData()
    2.按下那个普通button时,((CButton*)(GetDlgItem(IDC_RADIO1+m_select)))->SetCheck(0); //把按下的弹起来
      

  3.   

    同意shunruo。如果想要有更好的效果,请参考CHoverButton.它可以显示位图,可以根据按钮的不同状态(正常,鼠标移过,按下,不可用)设置不同的位图。
    http://www.codeproject.com/buttonctrl/hoverbutton.asp
      

  4.   

    radio   button 与普通的button一样都是cbutton类
      

  5.   

    也可以每个都关联一个CButton变量,用CButton::GetCheck()判断