フォーム上に A、B、X、Y という名前の 4 つのラジオ ボタンがある MFC フォームを作成しました。
ボタンAを選択すると、フォームに名前X、Yが表示されるようになりました
ボタンBを選択すると、X、Yの名前をM、Nに変更したい
どうやってするか?
フォーム上に A、B、X、Y という名前の 4 つのラジオ ボタンがある MFC フォームを作成しました。
ボタンAを選択すると、フォームに名前X、Yが表示されるようになりました
ボタンBを選択すると、X、Yの名前をM、Nに変更したい
どうやってするか?
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;
}
}