gpt4 book ai didi

c++ - 为 MFC 静态标签的整个背景着色

转载 作者:行者123 更新时间:2023-11-30 03:53:35 26 4
gpt4 key购买 nike

This Answer如果您想更改“常规”文本标签的背景颜色,这真的很棒。但是,如果您想在该文本标签周围放置一个边框并扩大其大小以使文本在名副其实的色彩海洋中游泳怎么办?它只用所需的颜色绘制文本背景,而将扩展控件的其余部分保留为标准按钮面。如何使整个控件的颜色保持一致?

注意:上述答案的吸引人之处(无论如何对我而言)是它使用了 OnCtlColor(),它提供了指向相关 CWnd 控件的指针.因此无需创建 CStatic 的子类来处理颜色变化。避免创建此类子类的答案将是首选。

最佳答案

我不太确定 OP 的注释部分。仍然发布此代码以寻求他的帮助。

HBRUSH CSampleDlg::OnCtlColor(CDC* pDC, CWnd *pWnd, UINT nCtlColor)
{
switch (nCtlColor)
{
case CTLCOLOR_STATIC:
{
CRect rcWindow(0, 0, 220, 40);
//::GetWindowRect(pWnd->GetSafeHwnd(), &rcWindow);
pDC->FillSolidRect(rcWindow, RGB(49, 49, 49));
pDC->SetTextColor(RGB(255, 255, 255));
return (HBRUSH)GetStockObject(NULL_BRUSH);
}
default:
{
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
}
}

关于c++ - 为 MFC 静态标签的整个背景着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30065962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com