(1)mfc下简单实现radio 背景色和dialog背景色相同
原理:先获取下radio的rect,然后获取此rect内的背景保存到dc里面,然后再贴上去即可。
重载dialog的OnCtrlColor函数,在函数内添加如下:
if(pWnd->GetDlgCtrlId() == IDC_RADIO_FALSE)
{
CRect rc;
GetDlgItem(IDC_RADIO_FALSE)->GetClientRect(rc);
CDC *pTmpDc = GetDlgItem(IDC_RADIO_FALSE)->GetWindowDC();
pDc->StretchBlt(0,0,rc.nWidth(),rc.nHeight(),pTmpDC,0,0,rc.nWidth(),rc.nHeight(),CRCCOPY);
hbr = (HBRUSH)::GetStockObject(NULL_BRUSH);
return hbr;
}
(2)radio获得选中的是哪一个:
使用的函数是:GetCheckdRadioButton()函数,返回的是选择的radio的ID号。
(1)在dialog上添加radio后,在DoDataExchange里面添加如下code:
CheckRadioButton(IDC_RADIO_TRUE,IDC_RADIO_FALSE,IDC_RADIO_FALSE); //表示这几个radio为一组
(2)获取是哪一个radio选中,则使用如下code:
if(GetCheckdRadioButton(IDC_RADIO_TRUE,IDC_RADIO_FALSE) == IDC_RADIO_RTUE)
{
AfxMessageBox(_T("IDC_RADIO_TRUE选中"));
}else if(GetCheckdRadioButton(IDC_RADIO_TRUE,IDC_RADIO_FALSE) == IDC_RADIO_FALSE)
{
AfxMessageBox(_T("IDC_RADIO_FALSE选中"));
}