一:按钮控件
按钮控件有一般的button按钮,radio button单选按钮和check button按钮;他们都是派生于CButton类的实例对象,综合这些按钮可以实现不同的功能;
二:编程实例
1:创建基于MFC对话框的应用程序,设计对话框如下:
2:给6个check 复选择按钮添加六个control变量;m_check1,...m_check6;然后在初始化对话框的函数里,BOOL CButtonDlg::OnInitDialog()中添加如下代码:
// TODO: 在此添加额外的初始化代码
m_check1.EnableWindow(FALSE);
m_check2.EnableWindow(FALSE);
m_check3.EnableWindow(FALSE);
m_check4.EnableWindow(FALSE);
m_check5.EnableWindow(FALSE);
m_check6.EnableWindow(FALSE);
m_check1.SetCheck(0);
m_check2.SetCheck(0);
m_check3.SetCheck(0);
m_check4.SetCheck(0);
m_check5.SetCheck(0);
m_check6.SetCheck(0);
初始化对话框,使六个复选择按钮均不能被选择,而且均为选中;
3:给三个radio button添加消息响应函数:
void CButtonDlg::OnBnClickedRadioPortal()
{
// TODO: 在此添加控件通知处理程序代码
OnInitDialog();
m_check2.EnableWindow(TRUE);
m_check3.EnableWindow(TRUE);
}
void CButtonDlg::OnBnClickedRadioForum()
{
// TODO: 在此添加控件通知处理程序代码
OnInitDialog();
m_check4.EnableWindow(TRUE);
m_check6.EnableWindow(TRUE);
}
void CButtonDlg::OnBnClickedRadioBlog()
{
// TODO: 在此添加控件通知处理程序代码
OnInitDialog();
m_check1.EnableWindow(TRUE);
m_check5.EnableWindow(TRUE);
}
可以看到,选择后先初始化目的是为了消除上一次选择的影响;同时使对应的复选择框EnAbleWindow,可以被选中;
4:在EditControl中显示选择结果,在确定按钮中添加消息响应函数:
void CButtonDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CString strWebsite;
if(m_check1.GetCheck()==1)
{
strWebsite +=_T("CSDN ");
}
if(m_check2.GetCheck()==1)
{
strWebsite +=_T("百度 ");
}
if(m_check3.GetCheck()==1)
{
strWebsite +=_T("新浪 ");
}
if(m_check4.GetCheck()==1)
{
strWebsite +=_T("凤凰论坛 ");
}
if(m_check5.GetCheck()==1)
{
strWebsite +=_T("腾讯微博 ");
}
if(m_check6.GetCheck()==1)
{
strWebsite +=_T("CC98 ");
}
SetDlgItemText(IDC_EDIT1,strWebsite);
}
这样就可以在文本框中显示结果了;