1

フォーム上に A、B、X、Y という名前の 4 つのラジオ ボタンがある MFC フォームを作成しました。

ボタンAを選択すると、フォームに名前X、Yが表示されるようになりました

ボタンBを選択すると、X、Yの名前をM、Nに変更したい

どうやってするか?

4

1 に答える 1

3

SetWindowText(); を使用して、他のコントロールのテキストを変更するのと同じように、ラジオボタンのテキストを変更します。

ラジオボタンの「選択」イベントを処理するために、BN_CLICKED 通知メッセージのハンドラーを追加します。4 つのラジオボタンすべてに同じハンドラを使用することをお勧めします。次に、関数内に次の小さなコードを記述します。

// 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 に答える