设计界面 Check为复选框 radio为单选框
找到初始化函数,设置单选框初始值
CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO2);//选择两个选框,在其中选中一个显示。
// TODO: 在此添加额外的初始化代码
CheckRadioButton(IDC_RADIO1,IDC_RADIO2,IDC_RADIO2);
选择以后check选框,添加处理函数
void CMFCday2BDlg::OnBnClickedCheck3()
{
// TODO: 在此添加控件通知处理程序代码
Invalidate();//清空界面
}
BOOL CMFCday2BDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
BOOL bRet= CDialogEx::OnEraseBkgnd(pDC);
int nRed,nGreen,nBlue;// 存放颜色值
nRed=m_chk_red.GetCheck()? 255:0;//m_chk_red为check的成员变量
nGreen=m_chk_green.GetCheck()?255:0;//按下赋值nGreen
nBlue=m_chk_blue.GetCheck()?255:0;
COLORREF crFore=RGB(nRed,nGreen,nBlue);//设置颜色RGB
CBrush brush;//创建新笔刷
brush.CreateSolidBrush(crFore);//创建单色画刷 给定颜色
CBrush*pOldBrush=pDC->SelectObject(&brush);//保存旧的画刷 背景
RECT rc={50,20,150,120};//指定画图范围 前两值为顶点坐标 后两值为图形大小
if(m_rd_rect.GetCheck())
{
pDC->Rectangle(&rc);//画矩形
}
else
{
pDC->Ellipse(&rc);//画圆形
}
pDC->SelectObject(pOldBrush);//
return bRet;
}
添加代码 使得程序 选框相互独立
void CMFCday2BDlg::OnBnClickedCheck2()
{
// TODO: 在此添加控件通知处理程序代码
OnBnClickedCheck3();
}
void CMFCday2BDlg::OnBnClickedCheck1()
{
// TODO: 在此添加控件通知处理程序代码
OnBnClickedCheck3();
}