首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

以编程方式选择MFC单选按钮

以编程方式选择MFC单选按钮可以通过以下方法实现:

  1. 使用CButton类的SetCheck()方法

可以通过CButton类的SetCheck()方法来选中或取消选中MFC单选按钮。该方法的原型如下:

代码语言:c++
复制
void SetCheck(int nCheck);

其中,nCheck参数的值为1表示选中单选按钮,0表示取消选中单选按钮。

例如,以下代码可以选中ID为IDC_RADIO1的单选按钮:

代码语言:c++
复制
CButton* pButton = (CButton*)GetDlgItem(IDC_RADIO1);
pButton->SetCheck(1);
  1. 使用BM_SETCHECK消息

也可以通过发送BM_SETCHECK消息来选中或取消选中MFC单选按钮。该消息的原型如下:

代码语言:c++
复制
LRESULT BM_SETCHECK(int nCheck);

其中,nCheck参数的值为1表示选中单选按钮,0表示取消选中单选按钮。

例如,以下代码可以选中ID为IDC_RADIO1的单选按钮:

代码语言:c++
复制
CButton* pButton = (CButton*)GetDlgItem(IDC_RADIO1);
pButton->SendMessage(BM_SETCHECK, 1);

需要注意的是,如果要同时取消选中其他单选按钮,需要在选中目标单选按钮之前先取消选中其他单选按钮。可以通过CButton类的GetButtonStyle()方法来获取当前单选按钮的状态,如果返回值为1,则表示该单选按钮已经被选中。

例如,以下代码可以选中ID为IDC_RADIO1的单选按钮,并取消选中其他单选按钮:

代码语言:c++
复制
CButton* pButton1 = (CButton*)GetDlgItem(IDC_RADIO1);
CButton* pButton2 = (CButton*)GetDlgItem(IDC_RADIO2);

if(pButton1->GetCheck() == 1) {
    pButton1->SetCheck(0);
}
else {
    pButton1->SetCheck(1);
    pButton2->SetCheck(0);
}
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

VC++6.0中改变窗口背景颜色和控件背景颜色,CDC,我的感觉

1.改变对话框的背景色 在C…App类中的InitInstance()里添加 SetDialogBkColor(RGB(0,192,0),RGB(0,0,0)); 2.如果想改变静态文本或单选按钮的背景色可以用你说的那个获得控件ID,然后设置背景色,具体步骤: (1)响应对话框类的WM_CTLCOLOR消息生成OnCtlColor函数 (2)为对话框类添加成员变量CBrush m_brush; 并在初始化函数中初始化m_brush.CreateSolidBrush(RGB(0,255,0)); (3)在OnCtlColor函数中添加代码以改变控件的文字颜色和背景色 switch(pWnd->GetDlgCtrlID()) { case(IDC_INPUT):   pDC->SetTextColor(RGB(255,0,192));   pDC->SetBkMode(TRANSPARENT);   return m_brush;   break; case(IDC_EDIT1):   pDC->SetTextColor(RGB(255,0,0));   pDC->SetBkMode(TRANSPARENT);   return m_brush;   break; case(IDC_CHOICE):   pDC->SetTextColor(RGB(255,128,0));   pDC->SetBkMode(TRANSPARENT);   return m_brush;   break; case(IDC_RADIO1):   pDC->SetTextColor(RGB(255,0,20));   pDC->SetBkMode(TRANSPARENT);   return m_brush;   break; default:   break; } 3.如果想改变按钮的背景色,简直太难了,你要重写两个类,还需要在网上下,孙鑫的视频教程中也简单介绍了这个,可只是改变按钮的文字颜色

03
领券