代码改变世界

CStatic设置控件背景色,输出字体颜色以及设置背景透明

  bgbing  阅读(2143)  评论(0编辑  收藏  举报

1.创建一个MFC对话框,改变static背景色,字体颜色

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
BOOL CteststaticcolorDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();
 
    // 将“关于...”菜单项添加到系统菜单中。
 
    // IDM_ABOUTBOX 必须在系统命令范围内。
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);
 
    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != nullptr)
    {
        BOOL bNameValid;
        CString strAboutMenu;
        bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
        ASSERT(bNameValid);
        if (!strAboutMenu.IsEmpty())
        {
            pSysMenu->AppendMenu(MF_SEPARATOR);
            pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
        }
    }
 
    // 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动
    //  执行此操作
    SetIcon(m_hIcon, TRUE);         // 设置大图标
    SetIcon(m_hIcon, FALSE);        // 设置小图标
 
    // TODO: 在此添加额外的初始化代码
    m_font1.CreatePointFont(120, TEXT("Impact"));
    m_font2.CreatePointFont(120, TEXT("Arial"));
 
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
HBRUSH CteststaticcolorDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
    HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);
 
    // TODO:  在此更改 DC 的任何特性
    if (nCtlColor == CTLCOLOR_STATIC)
    {
        switch (pWnd->GetDlgCtrlID())
        {
        case IDC_STATIC1:
            pDC->SetTextColor(RGB(255, 0, 0));
            pDC->SetBkColor(RGB(255, 255, 255));
        //  pDC->SetBkMode(TRANSPARENT);
            pDC->SelectObject(&m_font1);
            return (HBRUSH)::GetStockObject(BLACK_BRUSH);
            break;
        case IDC_STATIC2:
            pDC->SetTextColor(RGB(255, 255, 0));
            pDC->SetBkColor(RGB(255, 255, 255));
            pDC->SelectObject(&m_font2);
            pDC->SetBkMode(TRANSPARENT);
            return (HBRUSH)::GetStockObject(BLACK_BRUSH);
            break;
        default:
            break;
        }
    }
 
    // TODO:  如果默认的不是所需画笔,则返回另一个画笔
    return hbr;
}

 

 

运行效果:

另:非动态创建,可以选择CLabel 类,   http://www.codeproject.com/Articles/215/Extended-Use-of-CStatic-Class-CLabel-1-6

CLabel属性说明:(19条消息) CLabel函数说明_stawn的专栏-CSDN博客_clabel函数用法

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示