2013-01-11 164 views
1

我已經創建了一個MFC形式與4個單選按鈕,與所述表格上的名稱A,B,X,Y,MFC單選按鈕改變按鈕名稱動態

現在我想要的形式來顯示所述姓名X, Ÿ當我選擇按鈕A

,當我選擇按鈕B,我想X的名字,Y更改爲M,N

如何做到這一點?

回答

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; 
    } 
} 
+0

非常感謝!它就像你說的那樣工作 – goal4321