在Radio Button的所在窗口添加CTLCOLOR事件.
在响应函数中添加如下代码:
HBRUSH CPZVguiShapeDisplaySettingAllDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
TCHAR szClassName[MAX_PATH]={0};
::GetClassName(pWnd->m_hWnd, szClassName, sizeof(szClassName)/sizeof(TCHAR)-2);
if (lstrcmpi(szClassName,_T("Button")) == 0)
{
UINT uStyle = ((CButton*)pWnd)->GetButtonStyle( );
switch(uStyle)
{
case BS_AUTORADIOBUTTON:
{
static HBRUSH hbrSatic = ::CreateSolidBrush(RGB(255, 255, 255));//背景颜色
pDC->SetBkMode(TRANSPARENT);
pDC-> SetTextColor(RGB(0, 0, 0)); //字体颜色
return hbrSatic;
}
break;
default:
break;
}
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
以上是改变了所有Radio Buttond的背景颜色和字体颜色.
如果只是单纯需要改变几个而已.则把switch中的变量变为需要修改的ID即可.
即:
UINT uId = ((CButton*)pWnd)->GetDlgCtrlID();
switch(uId)
{
case: ID_RADIO_BUTTON1
}