首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MFC单选按钮动态更改按钮名称

MFC单选按钮动态更改按钮名称
EN

Stack Overflow用户
提问于 2013-01-11 12:55:39
回答 1查看 1.5K关注 0票数 1

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

现在,当我选择按钮A时,我希望窗体显示名称X,Y

当我选择按钮B时,我想让X,Y的名字变成M,N

如何做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-11 19:37:07

更改单选按钮上的文本,就像更改任何其他控件上的一样,使用SetWindowText();

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

代码语言:javascript
复制
// 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;
  }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14271934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档