jackfunhunter 2016-10-02 05:41 采纳率: 0%
浏览 1897
已结题

MFC 静态文本背景颜色怎么设置透明

我再对话框中,添加了一个静态文本,对话框自己贴了一张图片!
然后 静态文本背景是白色的,不好看
然后通过OnCtlColor的方法,把静态文本设置为透明色,代码如下:

在属性中,我已经把 transparent 设置为 true 了

HBRUSH CtestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);

if (pWnd == this)
{
    return m_brsh;
}

if (nCtlColor ==  CTLCOLOR_STATIC)
{
    pDC->SetBkColor(TRANSPARENT);
    pDC->SetTextColor(RGB(255, 0, 0));


    return (HBRUSH)GetStockObject(HOLLOW_BRUSH);
}

return hbr;

}

设置以后,运行,静态文本的背景色是黑色的!

  • 写回答

1条回答 默认 最新

  • androiosymbian 2016-10-02 07:48
    关注

    HBRUSH FrmMain::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
    HBRUSH hbr = CXDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    // TODO:  在此更改 DC 的任何特性
    if (nCtlColor == CTLCOLOR_STATIC)
    {
        pDC->SetBkMode(TRANSPARENT);
        return   (HBRUSH)::GetStockObject(NULL_BRUSH);
    }
    // TODO:  如果默认的不是所需画笔,则返回另一个画笔
    return hbr;
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 UE5#if WITH_EDITOR导致打包的功能不可用
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?
  • ¥15 电磁场的matlab仿真
  • ¥15 mars2d在vue3中的引入问题
  • ¥50 h5唤醒支付宝并跳转至向小荷包转账界面
  • ¥15 算法题:数的划分,用记忆化DFS做WA求调