一:按鈕控件
按鈕控件有一般的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);
}
這樣就可以在文本框中顯示結果了;