1

我创建了一个带有 4 个单选按钮的 MFC 表单,表单上的名称为 A、B、X、Y,

现在我希望表单在选择按钮 A 时显示名称 X、Y

当我选择按钮 B 时,我希望 X、Y 的名称更改为 M、N

怎么做?

4

1 回答 1

3

您可以使用 SetWindowText(); 更改任何其他控件上的文本方式来更改单选按钮上的文本;

为了处理“选择”单选按钮的事件,为 BN_CLICKED 通知消息添加一个处理程序。我建议您对所有四个单选按钮使用相同的处理程序。然后,在函数内部编写以下小代码:

// assumptions:
// there are four radiobuttons: IDC_RADIOA, IDC_RADIOB, IDC_RADIOX, IDC_RADIOY
// The message map
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
    ON_BN_CLICKED(IDC_RADIOA, OnRadio)
    ON_BN_CLICKED(IDC_RADIOB, OnRadio)
    ON_BN_CLICKED(IDC_RADIOX, OnRadio)
    ON_BN_CLICKED(IDC_RADIOY, OnRadio)
END_MESSAGE_MAP()

// a common handler for all four radiobuttons
void CMyDlg::OnRadio()
{
  switch(GetCheckedRadioButton(IDC_RADIOA, IDC_RADIOY))
  {
  case IDC_RADIOA:
     SetDlgItemText(IDC_RADIOX, _T("X"));
     SetDlgItemText(IDC_RADIOY, _T("Y"));
     break;
  case IDC_RADIOB:
     SetDlgItemText(IDC_RADIOX, _T("M"));
     SetDlgItemText(IDC_RADIOY, _T("N"));
     break;
  default:
     // you have not specified what to do when you select radio X and Y, so specify it here
     break;
  }
}
于 2013-01-11T11:37:06.923 回答