通过OnCtlColor函数试图改变radio控件字体的颜色为白色,代码如下:
HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if( pWnd ->GetDlgCtrlID() == IDC_RADIO1_ONE)
{
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextColor(RGB(255,255,255)); //白色字体
return HBRUSH(GetStockObject(HOLLOW_BRUSH));
}
return hbr;
}
运行程序,发现无法改变Radio控件的颜色,程序运行截图如下:
经过试验,发现当程序使用的DLLs是通过Manifest指定,Radio Button就不能改变其字体颜色,不过界面有XP风格,如上图所示。
经过试验发现可以使用如下方法改变Radio Button的文本颜色:
使用"open"按钮来打开编译后生成的exe文件,打开后如下图所示:
打开RT_MANIFEST展开项“1”的内容,内容如下: