MFC 修改Radio Button 的背景色以及文字颜色

在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

}


  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MFC中,我们可以通过以下几种方式来修改Button控件的字体、字体大小、背景色和背景图片。 1. 修改字体和字体大小: 通过Button控件的SetFont函数可以设置字体和字体大小。举例如下: ``` CButton* pBtn = (CButton*)GetDlgItem(IDC_BUTTON1); CFont font; font.CreateFont(16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, _T("Arial")); pBtn->SetFont(&font); ``` 上述例子中,创建了一个高度为16的Arial字体,并将其应用到ID为IDC_BUTTON1的Button控件中。 2. 修改背景色: 可以通过Button控件的SetBkColor函数设置背景色。举例如下: ``` CButton* pBtn = (CButton*)GetDlgItem(IDC_BUTTON1); pBtn->SetBkColor(RGB(255, 0, 0)); ``` 上述例子中,将ID为IDC_BUTTON1的Button控件背景色设置为红色。 3. 修改背景图片: 可以通过Button控件的SetBitmap函数设置背景图片。举例如下: ``` CButton* pBtn = (CButton*)GetDlgItem(IDC_BUTTON1); HBITMAP hBitmap = (HBITMAP)::LoadImage(AfxGetInstanceHandle(), _T("path_to_image.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION); pBtn->SetBitmap(hBitmap); ``` 上述例子中,从文件中加载一张位图图片,并将其设置为ID为IDC_BUTTON1的Button控件的背景图片。 总结: 通过以上三种方法,我们可以在MFC中方便地修改Button控件的字体、字体大小、背景色和背景图片。注意在使用时,需将代码放在相应的初始化函数中,如OnInitDialog()。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值