MFC设置 Static Text控件背景透明

本文详细介绍如何在MFC应用程序中使Static控件变为透明,包括设置控件属性、重载OnCtlColor函数、解决重影问题及刷新控件区域的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)设置控件的属性Transparent 为True

在资源窗口找到,Static Text控件,右键选择属性,找到Transparent属性,将其设置为True,如图所示

 

(2) 重载OnCtlColor函数

点击主窗口,选择属性,找到Message一栏,选择WM_CTLCOLOR,点击右侧下拉列表列表中的OnCtlColor,弹出OnCtlColor函数体

 

在该函数体中加入以下代码: 

    if(pWnd->GetDlgCtrlID() == IDC_DEVICE_STAT)     //IDC_DEVICE_STAT为Static控件的ID
    {
        pDC->SetTextColor(RGB(0,0,0));    //设置控件字体颜色
        pDC->SetBkMode(TRANSPARENT);   //设置透明属性
        return (HBRUSH)GetStockObject(NULL_BRUSH);   //返回空画刷
    } 

(3)解决重影问题,添加刷新局部背景的函数,该函数主要用于单独刷新所选择的控件的区域

    void XXXXDlg::RefreshControl(UINT uCtlID)
    {
        CRect rc;
        GetDlgItem(uCtlID)->GetWindowRect(&rc);
        ScreenToClient(&rc);
        InvalidateRect(rc);
    } 

(4)调用并刷新 

        在设置Static Text内容的地方都以下面的方式调用

            m_StaticDeviceStat.SetWindowText("msg");//m_StaticDeviceStat为控件绑定的变量
            RefreshControl(IDC_DEVICE_STAT); 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值